Перевірте різницю в секундах між двома разами


103

Привіт усім! Зараз я працюю над проектом, де коли трапляється певна подія, до масиву списку додаються деталі про подію, включаючи час, коли подія сталася.

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

Як би я це зробив.

Відповіді:


267

Припускаючи dateTime1і dateTime2є DateTimeзначеннями:

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;

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


3
Дякую, до речі, var в підсумку буде подвійним: TotalSeconds
Loaderon

3
Дякую ... Я щойно помилку покусав, використовуючи (мілісекунди) помилково, коли я мав насправді використовувати (TotalMilliseconds) ... ну.
andrew pate


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.