我有一张Excel表格,我试图转录成VB表格,以便从输入数字中获取设备的正常运行时间。
让我们说计算结果,例如:4.391286731即天数。
在Excel中我申请了:
=INT(col+row) &" Days " & HOUR(col+row) & " h " & MINUTE(col+row) & " m " & SECOND(col+row) & " s".
回归 4天9h 23m 27s 完美。
现在在VB中,在得到最终计算之后,ex:相同的4.391286731如何将此总数转换为类似于上面的Excel的日期/时间格式?
答案 0 :(得分:2)
您要查找的数据类型为TimeSpan
。
将Decimal
天转换为TimeSpan
:
Dim t As TimeSpan = TimeSpan.FromDays(4.391286731)
来自天,分钟,ETC的新TimeSpan
:
dim t as new TimeSpan([Days], Hours, Minutes, Seconds)
编辑:
Timespan.ToString()
将为您提供字符串表示形式,但不是您所请求的格式。
string.format("{0:%d} Days {0:%h}h, {0:%m}m, {0:%s}s", timespan.fromdays(4.391286731))
返回:" 4天9h,23m,27s"
答案 1 :(得分:0)
使用格式化命令。
来自ActiveCell中4.391286731
的立即窗口。
?format(int(activecell.Value2), "0 \d\a\y\s ")&format(activecell.Value2, "h\h m\m s\s")
4 days 9h 23m 27s
你不能将 0 格式的面具与 h , m 或 s 混合搭配,但是你当然可以将两个格式字符串连接在一起。