首页 > 解决方案 > 如何将 TimeSpan 转换为 int 并以季度分数显示小时数?

问题描述

我有一个正在处理的 ASP.NET MVC 应用程序,需要计算时间。我曾经用TimeSpan总时间进行计算,但我需要转换为 int,而不是 7:30:00 7 个半小时,我需要 7.5。下面是我正在使用的代码。请指出我正确的方向。

public TimeSpan? MonDailyHours
{
        get
        {
            if (MonTimeIn.HasValue && MonTimeOut.HasValue)
            {
                TimeSpan allDay = MonTimeOut.Value.Subtract(MonTimeIn.Value);
                TimeSpan lunch = MonLunchEnd.Value.Subtract(MonLunchStart.Value);

                var Total = (int) allDay - lunch;
            }
            return null;
        }            
}

尝试var Total失败,因为它无法转换。我知道我忽略了一些简单的事情,但我被卡住了。

标签: c#asp.net-mvc-5timespan

解决方案


首先 7.5 不是一个整数。其次,您已经使用了 Subtract 方法和减法运算符,它们是等效的。

    var total = (MonTimeOut.Value - MonTimeIn.Value) - (MonLunchEnd.Value - MonLunchStart.Value);
    double hours = total.TotalHours;

推荐阅读