C#中小时和分钟的时间跨度计算

dub*_*ubi 3 c# datetime timespan duration

最终结果应向用户显示开始时间和结束时间之间的时间跨度(例如,上午06:30开始工作,下午18:30结束,显示的结果应为12小时).

现在,我要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;
}
Run Code Online (Sandbox Code Playgroud)

这很好,我的问题是如果有的话,以分钟为单位获得时间跨度,最后将其添加到TimeSpan要显示的对象中.

如果两者都有30分钟的时间跨度,则以上述方式将返回0,并且如果它在min属性中具有值,则必须开始检查每个参数.

难道没有一种简单的方法可以将时间跨度分别保持数小时和分钟?

Tim*_*son 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
Run Code Online (Sandbox Code Playgroud)


Øyv*_*hen 6

如果DateTime从 a 中减去 a DateTime,结果是 aa TimeSpan。所以你可以简单地

TimeSpan result = toTime-fromTime;
int hours = result.Hours;
int minutes = result.Minutes;
Run Code Online (Sandbox Code Playgroud)