c# - 如何将 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
失败,因为它无法转换。我知道我忽略了一些简单的事情,但我被卡住了。
解决方案
首先 7.5 不是一个整数。其次,您已经使用了 Subtract 方法和减法运算符,它们是等效的。
var total = (MonTimeOut.Value - MonTimeIn.Value) - (MonLunchEnd.Value - MonLunchStart.Value);
double hours = total.TotalHours;