2010-11-11 129 views
2

最終結果應顯示用戶從開始小時到結束小時之間的時間跨度(例如,在上午06:30開始工作並在下午18:30結束,結果顯示應該是12小時)。C#中的小時和分鐘的時間跨度計算#

現在,我要DateTime參數; fromTime和toTime 每個DateTime參數都有24小時格式的小時,並且可能有30分鐘的分鐘值。

我願意做的是獲得那些DateTime參數之間的時間跨度。 對於小時,我用這個方法:

Public TimeSpan GetHourSpan(DateTime fromTime, DateTime toTime) 
{ 
    TimeSpan fromH = TimeSpan.FromHours(fromTime.Hour); 
     TimeSpan toH = TimeSpan.FromHours(toTime.Hour); 
     TimeSpan hourTotalSpan = toH.Subtract(fromH); 
    return hourTotalSpan; 
} 

這是偉大的,我的問題,就是以分鐘的時間跨度,如果有,最後把它添加到TimeSpan對象來顯示。

如果兩者都有30分鐘的時間跨度以上述方式將返回0,並且比我必須開始檢查每個參數,如果它在min屬性中有一個值。

是不是有一個簡單的方法來獲得時間跨度幾個小時和一起?

回答

11
TimeSpan span = toTime - fromTime; 
// Split into hours:minutes: span.Hours, span.Minutes 
// Total span in hours: span.TotalHours 
// Total span in minutes (hours * 60): span.TotalMinutes 
+0

感謝,沒有知道兩個日期時間的對象是減法會給出一個時間跨度,並不止於此,totalHours返還財產,需要什麼我顯示 – dubi 2010-11-11 13:22:56

1
TimeSpan span = toTime - fromTime; 
4

如果從DateTime扣除DateTime,結果是一個TimeSpan。因此,你可以簡單地採取

TimeSpan result = toTime-fromTime; 
int hours = result.Hours; 
int minutes = result.Minutes; 
0
public double DurationinMins(DateTime startDt, DateTime endDt) 
    { 
     var ts = endDt.Subtract(startDt); 
     return ts.TotalMinutes; 
    }