VB将总天数转换为datetime

时间:2016-01-07 19:35:49

标签: vb.net excel

我有一张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的日期/时间格式?

2 个答案:

答案 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"

MSDN Custom TimeSpan Format Strings

答案 1 :(得分:0)

使用格式化命令。

来自ActiveCell4.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 混合搭配,但是你当然可以将两个格式字符串连接在一起。