在C#中将时间转换为十进制

我需要做的是,有两个由用户输入的定义字符串,

string in = "9:35"; //am string out = "11:55"; //am 

我需要减去它们,以便获得它们签署的总小时数。这应该等于:

 string total = "2:20" 

然后,我需要将其转换为十进制..所以,2:20将是

 string decimal = "2.33"; 

我不知道该怎么做,任何帮助将不胜感激!

PS:id也喜欢能够从十进制数中计算出他们检查的总小时数,所以基本上相反

 DateTime dt1 = DateTime.Parse("11:55"); DateTime dt2 = DateTime.Parse("9:35"); double span = (dt1 - dt2).TotalHours; 

你真的需要“2:20”还是只是一个中间步骤?

编辑:如果你想回去,你只需要做一些数学运算。 取小数的余数乘以60,然后舍入。 那些将是分钟,所以只需将它们添加到小时。

或者你可以这样做:

 decimal dec = Convert.ToDecimal(TimeSpan.Parse("11:30").TotalHours); // returns: 11.5 

这个怎么样?

 TimeSpan inTime = new TimeSpan(9, 35, 0); //or TimeSpan.Parse("9:35"); TimeSpan outTime = new TimeSpan(11, 55, 0); //or TimeSpan.Parse("11:55"); TimeSpan total = outTime - inTime; decimal timevalue = total.Hours + (total.Minutes > 0 ? total.Minutes/60 : 0); string totalString = timevalue.ToString();