检查两次之间的差异
大家好,我目前正在一个项目中,当某个事件发生的事件的细节,包括事件发生的时间被添加到列表数组中。
一旦方法完成,我将列表传递给另一个检查其值的方法。 在我通过循环前,我检查我的电脑的当前时间,我需要检查保存在列表数组和当前时间之间的差异是否大于5秒。
我将如何去做这件事。
假设dateTime1
和dateTime2
是DateTime
值:
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;