2009-05-27 26 views
8

Làm cách nào tôi có thể trừ hai ngày khi một trong số đó là rỗng?TimeSpan sử dụng một ngày không có giá trị

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; 
} 

Trả lời

9

Hãy thử điều này:

weeksOnPlanSpan = DateTime.Now.Subtract(planStartDate.Value); 
1

Cast datetime nullable như một datetime bình thường.

Nếu bạn biết nó không phải là rỗng, thì diễn viên sẽ hoạt động tốt.

12

Để trừ hai ngày khi không, một hoặc cả hai ngày là không thể sử dụng bạn chỉ cần trừ số. Toán tử trừ làm điều đúng; bạn không cần phải tự viết tất cả các logic đã có trong toán tử phép trừ.

TimeSpan? timeOnPlan = DateTime.Now - user.PlanStartDate; 
return timeOnPlan == null ? 0 : timeOnPlan.Days/7; 
Các vấn đề liên quan