VB将总天数转换为datetime

我有一个Excel工作表,我试图转录到一个VB窗体,以便从input数字获得设备的运行时间。

假devise算结果,例如:4.391286731,那就是总天数。

在我申请的Excel中:

=INT(col+row) &" Days " & HOUR(col+row) & " h " & MINUTE(col+row) & " m " & SECOND(col+row) & " s". 

回报是4天9时23分27秒完美。

现在在VB中,得到最后的计算后,例如:同样的4.391286731如何将这个总和转换为类似于上面的Excel的date/时间格式?

您正在寻找的数据types是TimeSpan

Decimaldate转换为TimeSpan

 Dim t As TimeSpan = TimeSpan.FromDays(4.391286731) 

从date,分钟等新的TimeSpan

 dim t as new TimeSpan([Days], Hours, Minutes, Seconds) 

编辑: Timespan.ToString()会给你一个string表示,但不是你所请求的格式。

 string.format("{0:%d} Days {0:%h}h, {0:%m}m, {0:%s}s", timespan.fromdays(4.391286731)) 

返回:“4天9时,23时,27秒”

MSDN自定义TimeSpan格式string

使用格式命令。

从ActiveCell中的 4.391286731立即窗口。

 ?format(int(activecell.Value2), "0 \d\a\y\s ")&format(activecell.Value2, "h\hm\ms\s") 4 days 9h 23m 27s 

你不能混合和匹配一个0格式的掩码与hms,但你当然可以连接两个格式string。