如何将时间跨度方法转换为十进制

本文关键字:转换 十进制 方法 时间跨度 | 更新日期: 2023-09-27 18:15:09

下面是我的代码:

TimeSpan span1 = TimeSpan.FromHours(dtmIn.Value.Hour);
TimeSpan span2 = TimeSpan.FromHours(dtmOut.Value.Hour);
TimeSpan span3 = TimeSpan.FromMinutes(dtmIn.Value.Minute);
TimeSpan span4 = TimeSpan.FromMinutes(dtmOut.Value.Minute);
TimeSpan span5 = span2.Subtract(span1) + span4.Subtract(span3);
lblTotal.Text = Convert.ToDecimal(span5).ToString("#.00");

最后一行出现格式错误。显然,我可以让标签以时间形式返回,但我需要它以小数形式返回

如何将时间跨度方法转换为十进制

TimeSpan转换为小数是没有意义的,因为时间不是数字。

您可能需要span5.TotalHours,这是一个包含小数部分的double

小数应该代表什么?几个小时和几分之一小时?您必须理解TimeSpan不能推断这一点,因为TimeSpan可能跨越毫秒或千年。

如果实际上是几个小时或几个小时,那么:

lbTotal.Text = span5.TotalHours.ToString("#.00");