如何检查当前日期是否已过去20分钟?
例如:
var start = DateTime.Now;
var oldDate = "08/10/2011 23:50:31";
if(start ??) {
//20 minutes were passed from start
}
最好的方法是什么? 谢谢:))
答案 0 :(得分:67)
您现在可以使用以下方法将开始时间与当前UTC时间进行比较:
start.AddMinutes(20) > DateTime.UtcNow
这种方法意味着您将获得有关夏令时变化的正确答案。
通过将时间添加到开始时间而不是减去和比较TimeSpan上的总时间,您可以使用更易读的语法并且可以处理更多日期差异情况,例如从开始1个月,从开始2周,...
答案 1 :(得分:10)
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
}
答案 2 :(得分:5)
将oldDate
解析为DateTime
对象(DateTime.Parse
)。
从start
中减去已解析的日期。这将返回TimeSpan
。
检查TotalMinutes
。
答案 3 :(得分:4)
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
}
答案 4 :(得分:1)
我能够通过在我的项目中使用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。
答案 5 :(得分:0)
var end = DateTime.Parse(oldDate);
if (start.Hour == end.Hour && start.AddMinutes(20).Minute >= end.Minute)