[英]Date comparison - How to check if 20 minutes have passed?
如何檢查當前日期是否已過去 20 分鍾?
例如:
var start = DateTime.Now;
var oldDate = "08/10/2011 23:50:31";
if(start ??) {
//20 minutes were passed from start
}
最好的方法是什么? 謝謝 :)
您應該將您的開始時間轉換為 UTC 時間,例如“開始”。
您現在可以使用以下方法將您的開始時間與當前 UTC 時間進行比較:
DateTime.UtcNow > start.AddMinutes(20)
這種方法意味着您將獲得有關夏令時更改的正確答案。
通過將時間添加到開始時間而不是減去和比較 TimeSpan 上的總時間,您可以獲得更易讀的語法並且您可以處理更多日期差異情況,例如從開始開始 1 個月,從開始開始 2 周,...
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
}
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
}
oldDate
解析為DateTime
對象 ( DateTime.Parse
)。
從start
中減去解析的日期。 這將返回一個TimeSpan
。
檢查TotalMinutes
。
我能夠通過在我的項目中使用 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 分鍾。 將屬性更改為秒。 你會更容易知道。 這將返回錯誤。
var end = DateTime.Parse(oldDate);
if (start.Hour == end.Hour && start.AddMinutes(20).Minute >= end.Minute)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.