最近程式執行常常有Time out的問題,其實剛接觸C#.NET程式的我來說,完全不知道問題出在哪裡!
但是至少我可以知道我程式的執行時間吧@@,就這樣上網搜尋了一下前輩們的經驗!
整理一下作為自己以後的備忘錄>"<..
感謝前輩們!
 
說明:
1.DateTime值類型代表了一個從公元0001年1月1日0點0分0秒到公元9999年12月31日23點59分59秒之間的具體日期時刻。                                  
因此,你可以用DateTime值類型來描述任何在想像範圍之內的時間。一個DateTime值代表了一個具體的時刻        
                                     
2.TimeSpan值包含了許多屬性與方法,用於訪問或處理一個TimeSpan值
下面的列表涵蓋了其中的一部分:
Add:與另一個TimeSpan值相加。
Days:返回用天數計算的TimeSpan值。
Duration:獲取TimeSpan的絕對值。
Hours:返回用小時計算的TimeSpan值
Milliseconds:返回用毫秒計算的TimeSpan值。
Minutes:返回用分鐘計算的TimeSpan值。
Negate:返回當前實例的相反數。
Seconds:返回用秒計算的TimeSpan值。
Subtract:從中減去另一個TimeSpan值。
Ticks:返回TimeSpan值的tick數。
TotalDays:返回TimeSpan值表示的天數。
TotalHours:返回TimeSpan值表示的小時數。
TotalMilliseconds:返回TimeSpan值表示的毫秒數。
TotalMinutes:返回TimeSpan值表示的分鐘數。
TotalSeconds:返回TimeSpan值表示的秒數。
 
 
範例:

//方法一

System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();//引用stopwatch物件

sw.Reset();//碼表歸零

sw.Start();//碼表開始計時

/**************/

/**************/

/***目標程式***/

/**************/

/**************/

sw.Stop();//碼錶停止

//印出所花費的總豪秒數

string result1 = sw.Elapsed.TotalMilliseconds.ToString();



//方法二

DateTime time_start = DateTime.Now;//計時開始 取得目前時間

/**************/

/**************/

/***目標程式***/

/**************/

/**************/

System.Threading.Thread.Sleep(1000);

DateTime time_end = DateTime.Now;//計時結束 取得目前時間

//後面的時間減前面的時間後 轉型成TimeSpan即可印出時間差

string result2 = ((TimeSpan)(time_end - time_start)).TotalMilliseconds.ToString();

如果要顯示時間,可用方法2的寫法,將資料轉換

 string result2 = ((TimeSpan)(time_end - time_start)).Minutes.ToString() + ""

 + ((TimeSpan)(time_end - time_start)).Seconds.ToString() + ""

 + ((TimeSpan)(time_end - time_start)).Milliseconds.ToString() + "毫秒" ;

 

 

同場加映 計算兩日期的時間差別

      private string DateDiff(DateTime DateTime1, DateTime DateTime2)

        {

            string dateDiff = null;

            TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);

            TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);

            TimeSpan ts = ts1.Subtract(ts2).Duration();

            dateDiff = ts.Days.ToString()+""

                + ts.Hours.ToString()+"小時"

                + ts.Minutes.ToString()+"分鐘"

                + ts.Seconds.ToString()+"";

            return dateDiff;

 

參考來源:宅之力Lina 的健忘記事藍森林MSDN

後記:其實程式卡住,還再執行..也不會回傳執行時間阿>"<.....Orz..不過總算知道哪一段程式花費時間最久

 


Posted by 炎龍牙 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()