簡體   English   中英

日期比較 - 如何檢查 20 分鍾是否已過?

[英]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
    }

最好的方法是什么? 謝謝 :)

  1. 您應該將您的開始時間轉換為 UTC 時間,例如“開始”。

  2. 您現在可以使用以下方法將您的開始時間與當前 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM