最终结果应向用户显示开始时间和结束时间之间的时间跨度(例如,上午06:30开始工作,下午18:30结束,显示的结果应为12小时)。< / p>
现在,我必须DateTime
个参数;从时间到时间
每个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属性中有值,则必须开始检查每个参数。
是不是有一种简单的方法可以将时间跨度分别维持数小时和分钟?
答案 0 :(得分:13)
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
答案 1 :(得分:4)
如果您从DateTime
中扣除DateTime
,则结果为TimeSpan
。所以你可以简单地拿
TimeSpan result = toTime-fromTime;
int hours = result.Hours;
int minutes = result.Minutes;
答案 2 :(得分:1)
TimeSpan span = toTime - fromTime;
答案 3 :(得分:0)
public double DurationinMins(DateTime startDt, DateTime endDt)
{
var ts = endDt.Subtract(startDt);
return ts.TotalMinutes;
}