检查两次之间的秒数差异

Boa*_*rdy 82 c#

大家好,我目前正在开发一个项目,当某个事件发生时,事件的详细信息,包括事件发生的时间被添加到列表数组中.

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

我该怎么做呢

Jon*_*Jon 233

假设dateTime1并且dateTime2DateTime值:

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您将使用DateTime.Now列表中的值和时间之一作为另一个.注意顺序,因为如果dateTime1早于,则结果可能是负数dateTime2.

  • 谢谢,顺便说一下,var最终会加倍:[TotalSeconds](https://msdn.microsoft.com/en-us/library/system.timespan.totalseconds(v = vs.110).aspx) (3认同)
  • 谢谢...当我真正使用(TotalMilliseconds)时,我只是误用了(毫秒)...哎哟. (3认同)

Ric*_*lly 16

对于这样的场合,DateTime有一个Subtract方法和一个重载-运算符:

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


ste*_*ieg 12

此版本始终将秒数差异作为正数返回(与@ freedeveloper的解决方案相同):

var seconds = System.Math.Abs((date1 - date2).TotalSeconds);
Run Code Online (Sandbox Code Playgroud)