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

时间:2010-11-11 08:58:55

标签: c# datetime timespan duration

最终结果应向用户显示开始时间和结束时间之间的时间跨度(例如,上午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属性中有值,则必须开始检查每个参数。

是不是有一种简单的方法可以将时间跨度分别维持数小时和分钟?

4 个答案:

答案 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;
    }