資源描述:
《c# 計算時間差 用timespan函數(shù)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、C#計算時間差用timespan函數(shù)TimeSpan結(jié)構(gòu)表示一個時間間隔。命名空間:System程序集:mscorlib(在mscorlib.dll中)1.DateTime值類型代表了一個從公元0001年1月1日0點0分0秒到公元9999年12月31日23點59分59秒之間的具體日期時刻。因此,你可以用DateTime值類型來描述任何在想象范圍之內(nèi)的時間。一個DateTime值代表了一個具體的時刻2.TimeSpan值包含了許多屬性與方法,用于訪問或處理一個TimeSpan值下面的列表涵蓋了其中的一部分:Add:與另一個TimeSpan值相加。Days:返回用天數(shù)計算的TimeSpan值。
2、Duration:獲取TimeSpan的絕對值。Hours:返回用小時計算的TimeSpan值Milliseconds:返回用毫秒計算的TimeSpan值。Minutes:返回用分鐘計算的TimeSpan值。Negate:返回當前實例的相反數(shù)。Seconds:返回用秒計算的TimeSpan值。Subtract:從中減去另一個TimeSpan值。Ticks:返回TimeSpan值的tick數(shù)。TotalDays:返回TimeSpan值表示的天數(shù)。TotalHours:返回TimeSpan值表示的小時數(shù)。TotalMilliseconds:返回TimeSpan值表示的毫秒數(shù)。TotalMinu
3、tes:返回TimeSpan值表示的分鐘數(shù)。TotalSeconds:返回TimeSpan值表示的秒數(shù)。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初始化為指定的小時數(shù)、分鐘數(shù)和秒數(shù)。TimeSpan(Int32,Int32,Int32,Int32)將新的TimeSpan初始化為指定的天數(shù)、小時數(shù)、分鐘數(shù)和秒數(shù)。TimeSpan(Int32,Int32,Int32,
4、Int32,Int32)將新的TimeSpan初始化為指定的天數(shù)、小時數(shù)、分鐘數(shù)、秒數(shù)和毫秒數(shù)。ASP.NET中,兩個時間相減,得到一個TimeSpan實例,TimeSpan有一些屬性:Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、Seconds、TotalSeconds、Ticks,注意沒有TotalTicks。這些屬性名稱開始理解有些困難,但閱讀本文后,相應(yīng)您一定茅塞頓開。舉例說明?時間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是一小時的秒數(shù)。TotalDays就是把Ticks換算成日數(shù),即:8639990000000/(10000000*24*3600)=9.99998842592593。TotalHours
6、就是把Ticks換算成小時數(shù),即:8639990000000/(10000000*3600)=239.999722222222。TotalMinutes就是把Ticks換算成分鐘數(shù),即:8639990000000/(10000000*60)=14399.9833333333。TotalSeconds就是把Ticks換算成秒數(shù),即:8639990000000/(10000000)=863999。負數(shù)上面是較晚的日期減較早的日期,所以各屬性值為正數(shù),如果是較早的日期減較晚的日期,則屬性值為負數(shù)。TimeSpan(intdays,inthours,intminutes,intseconds)求離
7、最近發(fā)表時間的函數(shù)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