我想计算一个日期时间到现在的分钟数。 这就是我所拥有的:
TimeSpan SinceStatusChange = new TimeSpan();
SinceStatusChange = (double)(DateTime.Now.Date - StatusDateTime).TotalMinutes;
基本上,我想写这个条件语句:
if (SinceStatusChange is greater than 180 minutes)
如何编写“SinceStatusChange =”这一行,以便稍后测试该值是否大于180?
感谢。
答案 0 :(得分:4)
您正在尝试将double
分配给TimeSpan
,由于显而易见的原因,这将无效。你已经拥有了你想要的东西,只需使用:
// the 'Minutes' property of a TimeSpan object is a double,
// so the result is a double, not a new TimeSpan object.
double elapsed = (DateTime.Now - StatusDateTime).TotalMinutes;
if( elapsed > 180 )
{
// do stuff
}
答案 1 :(得分:2)
你可以很简单地做到这一点:
if (DateTime.Now - StatusDateTime > TimeSpan.FromMinutes(180))
{
// ...
}
答案 2 :(得分:1)
TotalMinutes对TimeSpan的调用返回一个double。将SinceStatusChange的签名更改为double,您可以像
一样使用它double SinceStatusChange;
SinceStatusChange = (DateTime.Now.Date - StatusDateTime).TotalMinutes;
if (SinceStatusChange > 180)
答案 3 :(得分:1)
您可以使用TimeSpan
s:
TimeSpan _180mins = new TimeSpan(3,0,0);
var timeDiff = DateTime.Now.Date - StatusDateTime;
if(timeDiff < _180mins)
{
}
答案 4 :(得分:1)
这将为您提供所需的双倍:
if (DateTime.Now.Subtract(statusDateTime).TotalMinutes > 180)
{
//do work.
}