/ / 最新

swk's log - 正午は午前十二時? 午後十二時? 午後零時?

2005-05-04

* 正午は午前十二時? 午後十二時? 午後零時? [gkbinclock]

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 個多い 時点で異変に気づいてくれ太政官.

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Jaelyn] What a joy to find such clear thinking. ... (2013-07-04 07:05:45)

最終更新時間: 2009-01-04 15:31


Shingo W. Kagami - swk(at)kagami.org