日期比较 – 如何检查是否过了20分钟?

如何检查当前日期是否已过去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时间进行比较:

    start.AddMinutes(20) > DateTime.UtcNow

这种方法意味着您将获得有关夏令时变化的正确答案。

通过将时间添加到开始时间而不是减去和比较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 } 

oldDate解析为DateTime对象( DateTime.Parse )。

start减去解析日期。 这将返回TimeSpan

检查TotalMinutes

 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 } 

我能够通过在我的项目中使用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。

 var end = DateTime.Parse(oldDate); if (start.Hour == end.Hour && start.AddMinutes(20).Minute >= end.Minute)