午後(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)は

以下のリンクからダウンロードできます。

NL-BASIC(N88-BASIC互換?)ホームページ

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$