日付と時刻について考える場合、今日の真夜中は過去または未来ですか?


9

これは常に私にとってはパズルです。プログラミングやソフトウェア開発では厳密には問題ではありませんが、私たちの分野では一般的な問題のようです。

たとえば、有効期限の日時を2011-04-08 00:00:00に設定した場合、現在の現地時間が8日の10:45であるとすると、すでに期限切れになっていますか?それとも、まだ半日ほど残っていますか?

真夜中の1日の終わりが「属する」ための普遍的な標準はありますか?

または私はイギリス軍から葉を取り、その日は23:59:59に終わり、00:00:01に始まり、真夜中がないと言うべきでしょうか?


待って待って、あなたの場所はどこですか?今は何日ですか 08または07?
Sufendy、2011


1
あなたは基本的に00:00:00が10:45:00よりも小さいか大きいかを尋ねていますか?
マーティンヨーク

私は葉っぱをとります。スケジュールを扱う多くの組織は00:00:00(および12:00:00)を回避しています。また、24時間クロックを使用しない国のAM / PM指定子については、いくつかの混乱があります。
dbasnett

一部のコンテキストで24:00:00は、1日の終わりの真夜中を表すために使用されます。
CodesInChaos 2013

回答:


17

私はプログラミング(オラクルとphp、他の言語についてはよくわかりません)では、真夜中が1日の始まりだと思います。たとえば、trunc(sysdate)を実行すると、過去の2011-04-08 00:00:00が取得されます。

したがって、クロックが23:59:59から00:00:00に変更された場合、日付は実際に2011-04-08から2011-04-09に変更されました


2
はい、その日のロールオーバーは午前0時(00:00:00)です。
quick_now 2011

これは正しいAFAIKです。1つの混乱は、カジュアルなスピーチでは、「今日の真夜中」はおそらく、今日の終わりの真夜中を意味する可能性があります。
ジャックV。

3

@Pheliosの回答の補遺。00:00:00のような時間がある場合、これは必ずしも真夜中とは限りません。むしろ、すべてが互いに1秒未満の最大距離を持つ、無限に大きな時間の集合です。たとえば、00:00:00.345、00:00:00.567、および00:00:00.842はすべて明らかに午前0時の新しい側にありますが、表示のために「00:00:00」に短縮されます。同様に、23:59:59:899は真夜中の前日側にあります。したがって、真夜中自体は、実際にはヒットしない日の間の無限の短い期間です。


これは違い呼び出すことが重要です1時間で理論と「疑惑」の練習を実際には、日付/時刻を入力するユーザーはほとんど秒を入力するために気にすることができ、ミリ秒は言うまでもありません。実際には、イベントの時間を決定するタイミングデバイスは、ミリ秒をサポートしない場合があります。実際には、タイミングデバイスがミリ秒をサポートしていても、ストレージフォーマットが何らかの理由で時間の一部を丸めたり切り捨てたりしない保証はありません。
幻滅'27

1

これは、たとえば0度と360度(および720度など)がすべて同じである円形ジオメトリを使用して角度間の差を計算するのと同様の問題です。350度と10度の違いは何ですか?

回答:それはあなたがそれを測定したい方法に依存します-それは20度または340度かもしれません。しかし、角度差の計算を行うことは実際にはかなり面倒です。時差計算は、通常の加算と減算を従来どおりに動作させる内部形式に変換しない限り、同様に厄介です。または、魔法のようにすべてをあなたから遠ざける(したがって、実際の詳細について誰にも教えない)モダンなクラスライブラリを使用します。


どちらの場合も、時計(または円)を一方向にのみ「正」として指定します
HorusKol

そうだね。ただし、計算を行って毎回正しくなるようにコードを書くには、少し考えが必要です。
quick_now
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.