如何从另一个DateTime中减去一个DateTime?

时间:2011-06-28 09:50:13

标签: c# asp.net datetime

我有一个DateTime实例,我从数据库中获取,我想从DateTime.Now中减去它,并查看是否已经过了4个小时。我该怎么做?

我应该何时使用DateTime.UTCNowDateTimeOffset

5 个答案:

答案 0 :(得分:6)

您可以使用减法运算符来获取TimeSpan

private static readonly TimeSpan MinimumTime = TimeSpan.FromHours(4);

...

if ((dateFromDatabase - DateTime.Now) > MinimumTime)
{
    ...
}

至于您是否需要UTCNowNow ...它取决于从数据库中获取数据时时区会发生什么。 DateTime在这方面并不十分清楚:(

如果您可以以DateTimeOffset开头获取值,那么您可以使用DateTimeOffset.Now代替,并且可以更简单地解决任何时区问题。

答案 1 :(得分:4)

DateTime.Subtract

首先是Google点击..

答案 2 :(得分:3)

试试这个:

bool fourHoursPassed = date.AddHours(4) < DateTime.Now;

或者这实际上执行减法:

bool fourHoursPassed = (DateTime.Now - date).TotalHours > 4;

答案 3 :(得分:1)

DateTime.Subtract

DateTime myDateTime = someValue; TimeSpan ts = DateTime.Now -myDateTime; if(ts.Hours>=4) { doSomething(); }

希望它有所帮助。

答案 4 :(得分:1)

DateTime dt = new DateTime(2011,07,10); DateTime dob = new DateTime(1987,07,10);

您可以简单地减去: TimeSpan年龄= dt - dob;