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
。
将Decimal
date转换为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格式的掩码与h , m或s,但你当然可以连接两个格式string。