如何檢查當前日期是否已過去20分鐘?日期比較 - 如何檢查20分鐘是否已過?
例如:
var start = DateTime.Now;
var oldDate = "08/10/2011 23:50:31";
if(start ??) {
//20 minutes were passed from start
}
什麼是做到這一點的最好方法是什麼? 謝謝:)
如何檢查當前日期是否已過去20分鐘?日期比較 - 如何檢查20分鐘是否已過?
例如:
var start = DateTime.Now;
var oldDate = "08/10/2011 23:50:31";
if(start ??) {
//20 minutes were passed from start
}
什麼是做到這一點的最好方法是什麼? 謝謝:)
現在你可以使用你的啓動時間比較當前UTC時間:
start.AddMinutes(20) > DateTime.UtcNow
這種方法意味着你會得到解決夏令時更改正確的答案。
通過增加時間到開始時間,而不是減去並比較TimeSpan上的總時間,您的語法更具可讀性,並且您可以處理更多的日期差異情況,例如,從一開始1個月,從一開始2周,...
+1用於教授合乎邏輯但對我來說不是不言而喻的事情。我也喜歡更可讀的語法提示。 –
看起來是最好的方式,我試試這個。 –
這是否改變了實際的物體。例如如果你把它存儲在內存中,它會永久增加20分鐘嗎? 在這種情況下,從DateTime中刪除20分鐘會更有意義。UtcNow,因爲這是一個構造函數 –
將oldDate
解析爲DateTime
對象(DateTime.Parse
)。
從start
中減去解析日期。這將返回TimeSpan
。
檢查TotalMinutes
。
+1這個答案比我的好。我忘了TotalMinutes ...這個答案可以防止不必要的第二個TimeSpan。 –
個人而言,我更喜歡'start.AddMinutes(20)> now',因爲它表示「自開始以來超過20分鐘已經過去」。此外,您可以使用它來測試使用TimeSpan無法輕鬆完成的周,月,年測量間隔。 –
var start = DateTime.Now;
var oldDate = DateTime.Parse("08/10/2011 23:50:31");
if(start.Subtract(oldDate) >= TimeSpan.FromMinutes(20))
{
//20 minutes were passed from start
}
var end = DateTime.Parse(oldDate);
if (start.Hour == end.Hour && start.AddMinutes(20).Minute >= end.Minute)
如果小時通過,這不起作用。 開始='23:20'結束='24:20'這是真的。 –
var start = DateTime.Now;
var oldDate = DateTime.Parse("08/10/2011 23:50:31");
if ((start - oldDate).TotalMinutes >= 20)
{
//20 minutes were passed from start
}
如果小時合格,這不起作用。 開始='23:20'結束='24:20'這是真的。 –
¿爲什麼你會以24:20的時間發送?在這種情況下,您應該使用TimeSpan對象,而不是DateTime,DateTime對象旨在用於有效的時間表示,而不是「24:20」 –
我能夠在我的項目使用JodaTime庫來實現這一目標。我拿出這個代碼。
String datetime1 = "2012/08/24 05:22:34";
String datetime2 = "2012/08/24 05:23:28";
DateTimeFormatter format = DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss");
DateTime time1 = format.parseDateTime(datetime1);
DateTime time2 = format.parseDateTime(datetime2);
Minutes Interval = Minutes.minutesBetween(time1, time2);
Minutes minInterval = Minutes.minutes(20);
if(Interval.isGreaterThan(minInterval)){
return true;
}
else{
return false;
}
這將檢查datetime1和datetime2之間的時間間隔是否大於20分鐘。將該屬性更改爲秒。你會更容易知道。這將返回false。
您可能希望使用'DateTime.UtcNow'而不是'DateTime.Now'來避免時鐘跳躍或轉發時夏時制變化的問題。 –
@Hightechrider:使用'UtcNow'只有在比較時間戳爲UTC時纔有用! – Gabe
@Gabe,顯然是的,但將開始時間轉換爲UTC並比較它會比'DateTime.Now'更好,因爲否則您可以得到一個小時似乎已經過去的情況! –