资源描述:
《c# 计算时间差 用timespan函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C#计算时间差用timespan函数TimeSpan结构表示一个时间间隔。命名空间:System程序集:mscorlib(在mscorlib.dll中)1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻2.TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值下面的列表涵盖了其中的一部分:Add:与另一个TimeSpan值相加。Days:返回用天数计算的TimeSpan值。
2、Duration:获取TimeSpan的绝对值。Hours:返回用小时计算的TimeSpan值Milliseconds:返回用毫秒计算的TimeSpan值。Minutes:返回用分钟计算的TimeSpan值。Negate:返回当前实例的相反数。Seconds:返回用秒计算的TimeSpan值。Subtract:从中减去另一个TimeSpan值。Ticks:返回TimeSpan值的tick数。TotalDays:返回TimeSpan值表示的天数。TotalHours:返回TimeSpan值表示的小时数。TotalMilliseconds:返回TimeSpan值表示的毫秒数。TotalMinu
3、tes:返回TimeSpan值表示的分钟数。TotalSeconds:返回TimeSpan值表示的秒数。TimeSpan(10,20,30,40,50)10.20:30:40.0500000TimeSpan(1111,2222,3333,4444,5555)1205.22:47:09.5550000TimeSpan(Int32,Int32,Int32)将新的TimeSpan初始化为指定的小时数、分钟数和秒数。TimeSpan(Int32,Int32,Int32,Int32)将新的TimeSpan初始化为指定的天数、小时数、分钟数和秒数。TimeSpan(Int32,Int32,Int32,
4、Int32,Int32)将新的TimeSpan初始化为指定的天数、小时数、分钟数、秒数和毫秒数。ASP.NET中,两个时间相减,得到一个TimeSpan实例,TimeSpan有一些属性:Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、Seconds、TotalSeconds、Ticks,注意没有TotalTicks。这些属性名称开始理解有些困难,但阅读本文后,相应您一定茅塞顿开。举例说明•时间1是2010-1-28:43:35;•时间2是2010-1-128:43:34。用时间2减时间1,得到一个TimeSpan实例。那么时间2比时
5、间1多9天23小时59分59秒。那么,Days就是9,Hours就是23,Minutes就是59,Seconds就是59。再来看Ticks,Tick是一个计时周期,表示一百纳秒,即一千万分之一秒,那么Ticks在这里表示总共相差多少个时间周期,即:9*24*3600*10000000+23*3600*10000000+59*60*10000000+59*10000000=8639990000000。3600是一小时的秒数。TotalDays就是把Ticks换算成日数,即:8639990000000/(10000000*24*3600)=9.99998842592593。TotalHours
6、就是把Ticks换算成小时数,即:8639990000000/(10000000*3600)=239.999722222222。TotalMinutes就是把Ticks换算成分钟数,即:8639990000000/(10000000*60)=14399.9833333333。TotalSeconds就是把Ticks换算成秒数,即:8639990000000/(10000000)=863999。负数上面是较晚的日期减较早的日期,所以各属性值为正数,如果是较早的日期减较晚的日期,则属性值为负数。TimeSpan(intdays,inthours,intminutes,intseconds)求离
7、最近发表时间的函数publicstringDateStringFromNow(DateTimedt){TimeSpanspan=DateTime.Now-dt;if(span.TotalDays>60){returndt.ToShortDateString();}elseif(span.TotalDays>30){return"1个月前";}elseif(span.TotalDays>14){return"2周前";}e