检查两次之间的秒数差异


100

大家好,我目前正在一个项目中,当某个事件发生时,有关事件的详细信息(包括事件发生的时间)将添加到列表数组中。

方法完成后,我将列表传递给另一个检查其值的方法。在进行循环之前,我检查了PC的当前时间,并且需要检查保存在列表数组中的时间与当前时间之间的差是否大于5秒。

我将如何去做。

Answers:


264

假设dateTime1dateTime2DateTime值:

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;

在您的情况下,您可以DateTime.Now将其中一个用作值,将列表中的时间用作另一个。请注意顺序,如果dateTime1早于,结果可能为负dateTime2


3
谢谢,顺便说一句,var最终将是
原来的

3
谢谢...当我真的应该使用(TotalMilliseconds)... ouch时,我误用了(Milliseconds)。
安德鲁·帕特

24

在这种情况下,DateTime具有一个Subtract方法和一个重载-运算符

DateTime now = DateTime.UtcNow;
TimeSpan difference = now.Subtract(otherTime); // could also write `now - otherTime`
if (difference.TotalSeconds > 5) { ... }

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.