我想计算不同日期之间有多少天.就像话题所说的那样,我得到的是负值.我想我可以采取绝对值,但它返回负值的事实让我怀疑计算是否正确.以下是我的代码:
DateTime previousDay = new DateTime(1998, 6, 31, new GregorianCalender());
DateTime nextDay = new DateTime(1998, 6, 3, new GregorianCalender());
TimeSpan differenceInDays = (nextDay - previousDay);
double xAxisValue = differenceInDays.TotalDays;
Run Code Online (Sandbox Code Playgroud)
当然,3-31给出-28,但由于我们希望它显示两者之间的间隔,因此它没有返回正值是没有意义的.难道我做错了什么?
我也试过这种方法:
(a - b).TotalDays
Run Code Online (Sandbox Code Playgroud)
其中a和b的类型为Datime
Jon*_*eet 12
我想我可以采取绝对值,但它返回负值的事实让我怀疑计算是否正确.
为什么?nextDay早于previousDay,所以当然减去previousDay会产生负面结果.
你有效地问"我需要多少天previousDay才能到达nextDay?答案是-28.
什么不关心我是这里的名字-我期望一个nextDay值总是晚于previousDay价值-所以要么你发现这些值的方式不正确,或者您需要更改名称,使意思更加清晰.据推测,就同一背景而言,它们不是"下一个"和"前一个".
这是预期的行为.
您应该使用TimeSpan.Duration()方法.
它返回一个新的TimeSpan对象,其值是当前TimeSpan对象的绝对值.
http://msdn.microsoft.com/en-us/library/system.timespan.duration.aspx
| 归档时间: |
|
| 查看次数: |
5396 次 |
| 最近记录: |