我想要实现的是获取从日期时间到当前日期时间的年份。
DateTime zeroTime = new DateTime(1, 1, 1);
DateTime now = DateTime.Now;
TimeSpan span = project.StartDate != null ? now - project.StartDate : TimeSpan.Zero;
int years = (zeroTime + span).Year - 1;
project.StartDate
可以为空,所以我尝试使用project.StartDate.HasValue
等条件。我仍然收到错误:
Cannot implicitly convert 'System.TimeSpan?' to 'System.TimeSpan'
我缺少什么,我浏览了SO,并在谷歌搜索,所以请不要将其标记为重复,因为您可以看到我已经使用过条件
答案 0 :(得分:5)
这应该有效。使用null-coalescing operator
TimeSpan span = (now - project.StartDate) ?? TimeSpan.Zero;
答案 1 :(得分:3)
尝试(你缺少.Value):
TimeSpan span= project.StartDate.HasValue? now-project.StartDate.Value:TimeSpan.Zero;