12時間制とstrftime

土曜日の暦の会のお題は安藤隆雄さん(→「時計の12時はなぜ0でないか?」)の
〝「午前12時は夜中か昼間か」と問われて、戸惑うのはなぜか〟

これについて when.exe の実装に関連した補足を少し…

輸入されてくるデジタル時計の12時間制の表記は、多くは、

http://en.wikipedia.org/wiki/12-hour_clock の Clock Systemの表

のとおりになっています。これは、C言語の strftime 関数[1]

http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/strftime.3.html

の %I も同様です[2]。when.exe Ruby版の strftimeも同じ振る舞いをする
ようにしています。

Wikipediaの「午前と午後」の記事では、この表記法を“便宜上”英米式と
しています。たぶん準拠する規格を探して見つからなかったのでしょう。

このような表記に de facto な仕様しか存在しないとすれば奇妙なことです。

[1] when.exe Ruby版には strptime はありません。
[2] %Iと%lの違いは10の位の0の扱いのみで、%lでも0~11にはなりません。

この記事へのコメント

この記事へのトラックバック