当其中一个日期可以为空时,如何减去两个日期?
public static int NumberOfWeeksOnPlan(User user)
{
DateTime? planStartDate = user.PlanStartDate; // user.PlanStartDate is: DateTime?
TimeSpan weeksOnPlanSpan;
if (planStartDate.HasValue)
weeksOnPlanSpan = DateTime.Now.Subtract(planStartDate); // This line is the problem.
return weeksOnPlanSpan == null ? 0 : weeksOnPlanSpan.Days / 7;
}
答案 0 :(得分:13)
当零,一个或两个可以为空时,减去两个日期你只需减去它们。减法运算符做正确的事情;你不需要自己编写已经在减法运算符中的所有逻辑。
TimeSpan? timeOnPlan = DateTime.Now - user.PlanStartDate;
return timeOnPlan == null ? 0 : timeOnPlan.Days / 7;
答案 1 :(得分:11)
试试这个:
weeksOnPlanSpan = DateTime.Now.Subtract(planStartDate.Value);
答案 2 :(得分:1)
将可空日期时间转换为正常日期时间。
如果你知道它不是null,则转换将正常工作。