2つの時間の差を秒単位で確認する


100

こんにちは、私は現在、特定のイベントが発生したときに、イベントの発生時刻を含むイベントの詳細がリスト配列に追加されるプロジェクトに取り組んでいます。

メソッドが終了したら、値をチェックする別のメソッドにリストを渡します。ループを実行する前に、PCの現在の時刻を確認し、リスト配列に保存されている時刻と現在の時刻の差が5秒より大きいかどうかを確認する必要があります。

これをどうやってやるの?

回答:


264

仮定するdateTime1dateTime2されているDateTime値は次のとおりです。

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;

あなたの場合、DateTime.Now値の1つとして使用し、リストの時間をもう1つとして使用します。がよりdateTime1も前の場合、結果がマイナスになる可能性があるため、順序に注意してくださいdateTime2


3
:おかげで、ところで、varが二重になってしまうでしょうTotalSeconds
Loaderon

3
ありがとう...(TotalMilliseconds)を実際に使用するべきだったのに、誤って(Milliseconds)を使用して噛まれました。
Andrew pate 2017


15

このバージョンは常に秒数の差を正数として返します(@freedeveloperのソリューションと同じ結果):

var seconds = System.Math.Abs((date1 - date2).TotalSeconds);

4

これを使用して、負の間隔を回避します。

var seconds = (date1< date2)? (date2- date1).TotalSeconds: (date1 - date2).TotalSeconds;

4
Math.Abs代わりに使用してください。このコードは、上記の答えを使用するよりも読みにくく、パフォーマンスが低くなります。
ProgramFast 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.