2009-07-06 65 views
6

我有一个像1.4,1.5,1.7的数据库中的小时字段,我需要转换回HH:MM。什么是最简单的方法来做到这一点?十进制小时到?

+2

什么是1.4应该代表什么? – 2009-07-06 15:44:59

回答

20

TimeSpan.FromHours

double value; 
TimeSpan t = TimeSpan.FromHours(value); 

实施例:

Console.WriteLine(TimeSpan.FromHours(1.4)); // prints 01:24:00 to the console. 
-2
Convert.ToDateTime(float) 
+0

我没有标记这个,但是这会抛出一个InvalidCastException – 2009-07-06 15:55:48

1

的HH(小时)图是小数点前数。

要获得分钟数字,请减去整数部分,以便您只有小数点后的数字,然后将分数乘以60得到分钟数。

0

我发现TimeSpan方法在接受的答案是好几小时< 24(1天)。

一个日期时间方法适合我的需要处理>24小时倍,而无需天(没有前导0):

public string DecHrsToHHMM(double dHours) 
    { 
     DateTime dTime = new DateTime().AddHours(dHours); 
     return dTime.ToString("H:mm"); 
    }