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

时间:2015-10-23 07:15:34

标签: c# .net decimal timespan

我的文本框中的值恰好为1.08:43:23,等于1d,08:43:23。我希望将值转换为十进制,然后将其乘以另一个十进制值,但是当我使用Convert.ToDecimal时,它会返回错误

  

输入字符串不是有效格式

Convert.ToDecimal不适合这种转换吗?有没有办法从这样的输入创建一个十进制值?

2 个答案:

答案 0 :(得分:15)

  

Convert.ToDecimal不适合这种转换吗?

没有。您需要先将其解析为TimeSpan(当然,文化中:TimeSeparator。)。然后,您可以从中获取double所需的持续时间类型。

var ts = TimeSpan.Parse("1.08:43:23", CultureInfo.InvariantCulture);

enter image description here

然后你可以使用TotalXXX properties类型的持续时间作为double(秒,毫秒等)。

答案 1 :(得分:3)

这将给出你的总票数..

decimal dec = Convert.ToDecimal(TimeSpan.Parse("11:30").Ticks);