检查两次之间的差异

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

一旦方法完成,我将列表传递给另一个检查其值的方法。 在我通过循环前,我检查我的电脑的当前时间,我需要检查保存在列表数组和当前时间之间的差异是否大于5秒。

我将如何去做这件事。

假设dateTime1dateTime2DateTime值:

 var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds; 

在你的情况下,你将使用DateTime.Now作为其中一个值和列表中的时间。 小心订单,如果dateTime1早于dateTime2 ,结果可能是负数。

DateTime在这种情况下有一个减法方法和一个重载操作符 :

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

此版本总是以秒为单位返回差数(与@ freedeveloper的解决scheme相同):

 var seconds = System.Math.Abs((date1 - date2).TotalSeconds); 

我用这个来避免消极的间隔。

 var seconds = (date1< date2)? (date2- date1).TotalSeconds: (date1 - date2).TotalSeconds;