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にはなりません。
〝「午前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にはなりません。
この記事へのコメント