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

4
最终结果应该向用户显示开始时间和结束时间之间的时间跨度。(例如:早上6:30开始工作,晚上6: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;
}

这很好,我的问题是如果有时间跨度,将其转换为分钟,并最终添加到TimeSpan对象中以显示。

如果两个参数在上述方式中都有30分钟的时间跨度,则返回0,然后我必须开始检查每个参数是否具有min属性中的值。

有没有一种简单的方法来获取小时和分钟的时间跨度?

4个回答

15
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

谢谢,我不知道两个DateTime对象相减会得到一个TimeSpan对象,而且totalHours属性返回的恰好是我需要显示的内容。 - dubi

6
如果您从一个 DateTime 中减去另一个 DateTime,结果会是一个 TimeSpan。因此,您可以简单地执行以下操作:
TimeSpan result = toTime-fromTime;
int hours = result.Hours;
int minutes = result.Minutes;

1
TimeSpan span = toTime - fromTime;

0
public double DurationinMins(DateTime startDt, DateTime endDt)
    {
        var ts = endDt.Subtract(startDt);
        return ts.TotalMinutes;
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接