午後(PM)12時は昼間か深夜か
結論を言いますと
午後(PM)12時を昼間とすると簡素
になりますので、
デジタル時計の表示と同じ、
昼間は午後(PM)12時
深夜は午前(AM)12時
とするのが良いと思います。
午後(PM)12時を深夜とすると煩雑
になります。
考察
24時間表示の時刻をT時、
12時間表示の時刻をt時とすると、
0≦T<24
0≦t<12 ただし0は通常12と表記される。
日付が1日から2日に変わる瞬間はT=0時
丁度で、T=0時は2日です。
このタイミングで午後から午前に変わると
考えるのが自然です。
0≦T<12 が午前、12≦T<24 が午後
0≦t<12 が午前、 0≦t<12 が午後
12時間表記の0時は12時と表記されるので
午前12時(午前t=0)は深夜(T= 0時)
午後12時(午後t=0)は昼間(T=12時)
となります。
午前と午後の時間帯に一貫性があります。
午前12:00:00の1秒後は午前12:00:01です。
午前12:59:59の1秒後は午前 1:00:00です。
すべて午前です。
一方
T=0時までが午後で少し過ぎてから午前に
なるのであれば、日付の変更と午後と午前の
変更のタイミングが違う(2つある)事になり
ます。
24時間の時
0≦T<12 が午前、12≦T<24 が午後
12時間の時
0≦t<12 が午前、 0≦t<12 が午後
と12時を表示しなければ問題ありませんが
12時を表示する時
0<t≦12 が午前、 0<t≦12 が午後
で、午後12時は午前0時なので、
同じ時刻に午後と午前両方存在することになり、
午前と午後の時間帯に一貫性がありません。
さらに午後と午前の切り替わるタイミングが
日付が変わるタイミングとズレることになる
という2つもの煩雑さが生まれます。
更に、
午後12:00:00の1秒後は午前12:00:01ですか?
ならば、午後12:00:00.00の0.01秒後は
午前12:00:00.01ですか?
それとも、
午後12:00:00の1秒後は午後12:00:01なら
午後12:59:59の1秒後は午前 1:00:00ですか?
12時の途中または12時と1時の間という中途半端な
タイミングで午後と午前が切り替わります。
どちらにしても煩雑すぎですね。
簡素に0時の事を12時と表記すると考えれば
良いのではないでしょうか、
0時を12時と表記するのはアナログ時計の
名残と割り切りましょう。
12時からスタートするのが気持ち悪いと思う方も
いらっしゃるかと思いますが、
上記の3つもの煩雑さに比べれば些細な事だと
思います。
NL-BASICとnl20906.zip(ampm001.bas)は
以下のリンクからダウンロードできます。
Readme.txtを読んで遊んで下さい。
下記リストをマウスで選択しCtrl+cでコピーし、
NL-BASICの画面でAlt+v(Ctrl+vではないので注意)
でプログラムを読込めます。
ampm001.bas
100 '------------------------------------------------------------
110 ' 24時間表示→12時間表示 by ULproject for N88-BASIC
120 '------------------------------------------------------------
130 INPUT "HH:MM:SS="; T$
140 H = VAL(LEFT$(T$, 2))
150 B$ = RIGHT$(T$, 6)
160 IF H < 12 THEN A$ = "AM " ELSE A$ = "PM "
170 T = H MOD 12
180 IF T = 0 THEN T = 12
190 A$ = " " + A$ + RIGHT$(STR$(T + 100), 2))
200 PRINT A$; B$