資源描述:
《c# 計(jì)算時(shí)間差 用timespan函數(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、C#計(jì)算時(shí)間差用timespan函數(shù)TimeSpan結(jié)構(gòu)表示一個(gè)時(shí)間間隔。命名空間:System程序集:mscorlib(在mscorlib.dll中)1.DateTime值類(lèi)型代表了一個(gè)從公元0001年1月1日0點(diǎn)0分0秒到公元9999年12月31日23點(diǎn)59分59秒之間的具體日期時(shí)刻。因此,你可以用DateTime值類(lèi)型來(lái)描述任何在想象范圍之內(nèi)的時(shí)間。一個(gè)DateTime值代表了一個(gè)具體的時(shí)刻2.TimeSpan值包含了許多屬性與方法,用于訪問(wèn)或處理一個(gè)TimeSpan值下面的列表涵蓋了其中的一部分:Add:與
2、另一個(gè)TimeSpan值相加。Days:返回用天數(shù)計(jì)算的TimeSpan值。Duration:獲取TimeSpan的絕對(duì)值。Hours:返回用小時(shí)計(jì)算的TimeSpan值Milliseconds:返回用毫秒計(jì)算的TimeSpan值。Minutes:返回用分鐘計(jì)算的TimeSpan值。Negate:返回當(dāng)前實(shí)例的相反數(shù)。Seconds:返回用秒計(jì)算的TimeSpan值。Subtract:從中減去另一個(gè)TimeSpan值。Ticks:返回TimeSpan值的tick數(shù)。TotalDays:返回TimeSpan值表示的天
3、數(shù)。TotalHours:返回TimeSpan值表示的小時(shí)數(shù)。TotalMilliseconds:返回TimeSpan值表示的毫秒數(shù)。TotalMinutes:返回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)將新的Time
4、Span初始化為指定的小時(shí)數(shù)、分鐘數(shù)和秒數(shù)。TimeSpan(Int32,Int32,Int32,Int32)將新的TimeSpan初始化為指定的天數(shù)、小時(shí)數(shù)、分鐘數(shù)和秒數(shù)。TimeSpan(Int32,Int32,Int32,Int32,Int32)將新的TimeSpan初始化為指定的天數(shù)、小時(shí)數(shù)、分鐘數(shù)、秒數(shù)和毫秒數(shù)。ASP.NET中,兩個(gè)時(shí)間相減,得到一個(gè)TimeSpan實(shí)例,TimeSpan有一些屬性:Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、
5、Seconds、TotalSeconds、Ticks,注意沒(méi)有TotalTicks。這些屬性名稱開(kāi)始理解有些困難,但閱讀本文后,相應(yīng)您一定茅塞頓開(kāi)。舉例說(shuō)明?時(shí)間1是2010-1-28:43:35;?時(shí)間2是2010-1-128:43:34。用時(shí)間2減時(shí)間1,得到一個(gè)TimeSpan實(shí)例。那么時(shí)間2比時(shí)間1多9天23小時(shí)59分59秒。那么,Days就是9,Hours就是23,Minutes就是59,Seconds就是59。再來(lái)看Ticks,Tick是一個(gè)計(jì)時(shí)周期,表示一百納秒,即一千萬(wàn)分之一秒,那么Ticks在這里
6、表示總共相差多少個(gè)時(shí)間周期,即:9*24*3600*10000000+23*3600*10000000+59*60*10000000+59*10000000=8639990000000。3600是一小時(shí)的秒數(shù)。TotalDays就是把Ticks換算成日數(shù),即:8639990000000/(10000000*24*3600)=9.99998842592593。TotalHours就是把Ticks換算成小時(shí)數(shù),即:8639990000000/(10000000*3600)=239.999722222222。TotalM
7、inutes就是把Ticks換算成分鐘數(shù),即:8639990000000/(10000000*60)=14399.9833333333。TotalSeconds就是把Ticks換算成秒數(shù),即:8639990000000/(10000000)=863999。負(fù)數(shù)上面是較晚的日期減較早的日期,所以各屬性值為正數(shù),如果是較早的日期減較晚的日期,則屬性值為負(fù)數(shù)。TimeSpan(intdays,inthours,intminutes,intseconds)求離最近發(fā)表時(shí)間的函數(shù)publicstringDateStringF
8、romNow(DateTimedt){TimeSpanspan=DateTime.Now-dt;if(span.TotalDays>60){returndt.ToShortDateString();}elseif(span.TotalDays>30){return"1個(gè)月前";}elseif(span.TotalDays>14){return"2周前";}e