大家好我目前正在開發一個項目,當某個事件發生時,發生事件的詳細信息(包括事件發生的時間)被添加到列表數組中。檢查兩次之間的差異秒數
一旦方法結束,我將列表傳遞給另一個檢查其值的方法。在我通過循環之前,檢查我的PC的當前時間,並且需要檢查列表數組中保存的時間與當前時間之間的差異是否大於5秒。
我該如何去做這件事。
大家好我目前正在開發一個項目,當某個事件發生時,發生事件的詳細信息(包括事件發生的時間)被添加到列表數組中。檢查兩次之間的差異秒數
一旦方法結束,我將列表傳遞給另一個檢查其值的方法。在我通過循環之前,檢查我的PC的當前時間,並且需要檢查列表數組中保存的時間與當前時間之間的差異是否大於5秒。
我該如何去做這件事。
假設dateTime1
和dateTime2
是DateTime
值:
var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;
在你的情況,你倒是用DateTime.Now
的價值之一,並在列表中的其他時間。請小心訂單,因爲如果dateTime1
早於dateTime2
,結果可能爲負值。
的DateTime有Subtract method和overloaded -
operator只是這樣的場合:
DateTime now = DateTime.UtcNow;
TimeSpan difference = now.Subtract(otherTime); // could also write `now - otherTime`
if (difference.TotalSeconds > 5) { ... }
我利用這一點避免負的區間。
var seconds = (date1< date2)? (date2- date1).TotalSeconds: (date1 - date2).TotalSeconds;
這個版本總是返回秒差爲正數號碼(相同的結果@ freedeveloper的解決方案):
var seconds = System.Math.Abs((date1 - date2).TotalSeconds);
感謝,順便說一下,變種最終會被雙:[TotalSeconds ](https://msdn.microsoft.com/en-us/library/system.timespan.totalseconds(v = vs.110).aspx) – Loaderon
謝謝......我剛剛被咬了(毫秒)當我應該真正使用錯誤(TotalMilliseconds)... ouch。 –