asp.net中的日期时间型数据,相减之后,可以求取年、月、天等数据,下面我们以求取天数为例子。
DateTime MyDateTime ="2014-07-11 20:17:01";
System.TimeSpan ts = DateTime.Now - MyDateTime;
int days = ts.Days;
假设,现在的日期时间DateTime.Now的值为:2014-07-19 0:17:49
那么,上述的代码中,所求取的天数days是多少呢?
很多人可能认为是8,但是,事实上,不是8,而是7,为什么呢?
因为通过System.TimeSpan定义的变量ts,它的值为7.04:00:48.2232362
该值未满8天,所以,返回的自然是7了。原因很简单,因为两日期时间型的相减之后,还要精确到小时分秒。
只有当MyDateTime的值里面的时间和DateTime.Now时间一样,那么,才算一天。
即,如果MyDateTime的值为2014-07-11 0:17:49时,所得的结果,获取的天数才是8,因为DateTime.Now 的值为2014-07-19 0:17:49。
两者相减,自然就是2014-07-19 0:17:49减去2014-07-11 0:17:49,时间相等了,就剩下日期相减了,相当于2014-07-19 减去2014-07-11,自然就是8天了。
所以,今后大家使用System.TimeSpan计算天数时,一定要考虑到小时分秒。