如何在C#中减去2个可以为空的DateTimes?

时间:2013-07-15 14:01:02

标签: c#

我想减去2“日期时间?”值并以天数显示答案。 TimeSpan或ToDays方法不适用于可空的日期时间。我能用其他任何方式吗?

3 个答案:

答案 0 :(得分:8)

你不能只使用:

if(yourDateTime != null) {
   DateTime dateTime = yourDateTime.Value; // You can run .ToDays etc on this

} 

答案 1 :(得分:7)

您需要获取可空类型的.Value属性才能访问基础值类型的方法。

请注意,如果没有值,这将抛出异常。

答案 2 :(得分:1)

这样做:

DataTime? a;
DateTime? b; 
TimeSpan? duration;

// Assign values to a and b...

if(a.HasValue && b.HasValue)
{
  duration = b.Value - a.Value;
}

var days = duration.GetValueOrDefault().TotalDays;
var hour = duration.GetValueOrDefault().TotalHours;