Проверить разницу в секундах между двумя значениями


106

Привет всем, в настоящее время я работаю над проектом, в котором, когда происходит определенное событие, сведения о событии, включая время, когда событие произошло, добавляются в массив списка.

После завершения метода я передаю список другому методу, который проверяет его значения. Прежде чем пройти цикл, я проверяю текущее время своего ПК, и мне нужно проверить, превышает ли разница между временем, сохраненным в массиве списка, и текущим временем 5 секунд.

Как бы я это сделал.

Ответы:


275

Предполагая, что dateTime1и dateTime2являются DateTimeзначениями:

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;

В вашем случае вы должны использовать DateTime.Nowодно из значений, а время в списке - как другое. Будьте осторожны с порядком, так как результат может быть отрицательным, если он dateTime1будет раньше dateTime2.


3
Спасибо, кстати, var будет удвоен: TotalSeconds
— Loaderon

3
Спасибо ... Меня только что по ошибке укусило (Миллисекунды), когда я действительно должен был использовать (TotalMilliseconds) ... ой.
— андрей паштет


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.