我有两个Nullable类型的DateTime变量。
DateTime? date1 = new DateTime();
DateTime? date2 = new DateTime();
我需要在int变量中区分这两个日期。我试过的是 -
int daysBetweenDate = (date2 - date1).GetValueOrDefault().TotalDays;
但我无法解决问题。
注意这两个日期的差异将是 只有在它们的值不为零时才计算。
答案 0 :(得分:7)
我会写一些类似的东西:
int? daysBetweenDate = date1.HasValue && date2.HasValue ? (int?)(date2.Value - date2.Value).TotalDays : null;
如果daysBetweenDate
和null
中至少有一个是date1
,则date2
为null
。
答案 1 :(得分:3)
如果您的目标是在一个(或两个)日期为空时返回null,则可以这样写(如果您可以使用C#6.0编译器中提供的?
运算符):
int? days = (int?) (date1 - date2)?.TotalDays;