Проверьте разницу в секундах между двумя раз
Привет всем Я в настоящее время работаю над проектом, где, когда определенное событие происходит, детали в событии, включая время, в которое произошло событие, добавляются в массив списка.
Как только метод закончен, я передаю список другому методу, который проверяет его значения. Прежде чем я пройду через цикл, я проверю текущее время своего ПК, и мне нужно проверить, не превышает ли разница между временем, сохраненным в массиве списка, и текущим временем больше 5 секунд.
Как я буду заниматься этим.
Ответы
Ответ 1
Предполагая dateTime1
и dateTime2
значения DateTime
:
var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;
В вашем случае вы используете DateTime.Now
как одно из значений и время в списке как другое. Будьте осторожны с порядком, так как результат может быть отрицательным, если dateTime1
раньше dateTime2
.
Ответ 2
DateTime имеет метод Subtract и перегруженный -
оператор для такого случая:
DateTime now = DateTime.UtcNow;
TimeSpan difference = now.Subtract(otherTime); // could also write `now - otherTime`
if (difference.TotalSeconds > 5) { ... }
Ответ 3
Эта версия всегда возвращает количество секунд разницы как положительное число (тот же результат, что и решение @freedeveloper):
var seconds = System.Math.Abs((date1 - date2).TotalSeconds);
Ответ 4
Я использую это, чтобы избежать отрицательного интервала.
var seconds = (date1< date2)? (date2- date1).TotalSeconds: (date1 - date2).TotalSeconds;