2010-11-11 107 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; 
    }