如何将timespan方法转换为十进制?

时间:2011-11-20 01:50:37

标签: c#

这是我的代码:

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");

我收到最后一行的格式错误。我可以让标签明显地返回,但我需要它以小数形式返回。

2 个答案:

答案 0 :(得分:6)

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

您可能需要span5.TotalHours,这是double,其中包含小数部分。

答案 1 :(得分:1)

小数应代表什么?小时和小时一小时?您必须了解TimeSpan无法推断出这一点,因为TimeSpan可能会跨越几毫秒或几千年。

如果实际上是小时和一小时,那么:

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