軍事時間がint
0000..2400の範囲の値として格納されているとすると、次の関数はそのような2つの値の差を返します。
#include <cassert>
extern int timediff_minutes(int t1, int t2);
int timediff_minutes(int t1, int t2)
{
assert(t1 >= 0 && t1 <= 2400);
assert(t2 >= 0 && t2 <= 2400);
assert(t1 % 100 < 60 && t2 % 100 < 60);
int t1_mins = (t1 / 100) * 60 + (t1 % 100);
int t2_mins = (t2 / 100) * 60 + (t2 % 100);
return(t2_mins - t1_mins);
}
2400は、1日の終わりを表すのに役立ちます。また、2400の使用は、ISO 8601:2004によって認可されています。データ要素と交換形式—情報交換—日付と時刻の表現。
4.2.3真夜中
4.2.2に従って、深夜の基本形式および拡張形式での完全な表現は、次の2つの方法のいずれかで表現されるものとします。
Basic format Extended format
a) 000000 00:00:00 (the beginning of a calendar day)
b) 240000 24:00:00 (the end of a calendar day)
表現は、4.2.2.3に従って精度が低下する場合があり、4.2.2.5に従って時間式として指定される場合があります。真夜中を表すために、4.2.2.4に従って、ゼロのみを含む小数で表現を拡張できます。
注1真夜中は通常、[00:00]または[24:00]として表されます。
注21つの暦日の終わり[24:00]は、次の暦日の開始時の[00:00]と一致します。たとえば、1985年4月12日の[24:00]は、13の[00:00]と同じです。 1985年4月。日付または時間間隔に関連付けがない場合、a)とb)の両方が24時間の計時システムで同じ現地時間を表します。
注3表現a)またはb)の選択は、日付または時間間隔との関連付けによって異なります。[hh]の値が[24]である表現は、4.4に準拠した時間間隔の終了、または4.5に準拠した繰り返しの時間間隔を表す場合にのみ推奨されます。