在Nullable DateTime对象上调用AddDays

时间:2013-12-02 19:56:45

标签: c# datetime

我之前在AddDays(x)个对象上使用了DateTime方法,它工作正常,但现在我的对象定义如下:

public DateTime? To_Date { get; set; }

看起来这个没有AddDays方法。那怎么称呼呢?

3 个答案:

答案 0 :(得分:7)

由于DateTime?可以处于代表null的状态,因此如果它为空,则需要考虑该怎么做。

最明显的事情是保持null的值(null null之后的那一天)。

DateTime? later = ToDate.HasValue
  ? To_Date.Value.AddDays(numberOfDays)
  : (DateTime?)null;

也许你可以使用一些有意义的默认日期,在这种情况下:

DateTime later = (ToDate ?? defaultDate).AddDays(numberOfDays);

defaultDate没有值时会使用ToDate,否则会使用ToDate的值。

答案 1 :(得分:2)

您需要To_Date.Value.AddDays(1);

To_Date指的是只包含几个属性的包装器。一个是用于指示它是否为空的标志,另一个是值本身。首先检查它是否为空,尝试对值使用AddDays

答案 2 :(得分:1)

试试这个:

To_Date.Value.AddDays(x);