gkbinclock へのパッチを 1 ヵ月くらい前にもらっていたのだが,そのまま放置してしまっていた.ようやく取り込んで 0.6 をリリース.
何のパッチだったかというと,「12時間表記モードでは 0 時と表すより 12 時と表す方がいいはずだから,そう直したよ」というパッチ.
すぐに取り込めなかったのは,この主張自体が私の感覚と反するからである.結局そのパッチをそのまま適用するのではなく,0 時と表示するか 12 時と表示するかを選ぶための「12 instead of 0 モード」というものを設定パネルに増やすことにした.
個人的感覚としては,12時間表記であっても 1時〜12時より 0時〜11時で表す方が素直だと思っている.
正午を 12:00 と表す場合,それは午前 11:00 に後続するものなのだから,午前 12:00 であるとするのが素直だろう.しかし正午を一瞬でも過ぎた 12 時台の時刻を考えると,その時刻は正午を過ぎているのだから午後であり「午前12時XX分」と呼ぶのは非常に気持ち悪い.正午を午後 0 時,正子を午前 0 時とすれば,この辺の気持ち悪さは払拭される.
現実には「12時」という表現はごく普通に使われていて(実際俺だって使うよ),しかも午前なのか午後なのかは統一されていないので,ややこしいことこの上ない.(まあ実際には「昼の12時」とか「夜中の12時」とかいうことが多いし,文脈で一意に定まることが多いのでたいてい大丈夫なんだけど)
これはパッチを送ってくれた Peter とメールで議論しているときに彼が教えてくれたことなんだけど,strftime(3) だと正午は「午後」12:00 なのだ.
% perl -e 'use POSIX; print POSIX::strftime "%r\n", 59, 0, 11, 1, 1, 2000;' 11:00:59 AM % perl -e 'use POSIX; print POSIX::strftime "%r\n", 0, 0, 12, 1, 1, 2000;' 12:00:00 PM % perl -e 'use POSIX; print POSIX::strftime "%r\n", 1, 0, 12, 1, 1, 2000;' 12:00:01 PM
気持ちわるーい.
もっと気持ち悪いのは日本の法令だ.日本で時刻の表記を定めている法令を探すと,明治5年の太政官布告第337号までさかのぼることになり,その後改廃されている記録はないらしい.
これに掲載されている時刻表よると,
と分類されている.
(゜Д゜)ハァ?
つまり正子は午前零時でも午後十二時でもあるけど,正午は午前十二時でしかないと.さらに正午と午後 1:00 の間は午前でも午後でもないと.
なんつう法律だ.ていうか時刻表作ったときに 午前の表のマスが午後より 1 個多い 時点で異変に気づいてくれ太政官.
最終更新時間: 2009-01-04 15:31
* [Jaelyn] What a joy to find such clear thinking. ... (2013-07-04 07:05:45)