4

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

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

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

难道没有一种简单的方法可以同时获得几小时和几分钟的时间跨度吗?

4

4 回答 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
于 2010-11-11T09:01:33.610 回答
6

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

TimeSpan result = toTime-fromTime;
int hours = result.Hours;
int minutes = result.Minutes;
于 2010-11-11T09:02:53.080 回答
1
TimeSpan span = toTime - fromTime;
于 2010-11-11T09:00:58.543 回答
0
public double DurationinMins(DateTime startDt, DateTime endDt)
    {
        var ts = endDt.Subtract(startDt);
        return ts.TotalMinutes;
    }
于 2013-04-20T16:41:56.993 回答