因此,我需要一些帮助来解决时间跨度总和中的一个小问题。
我有这段代码可以对两个变量的时间求和。
$AllDuration = $Duration1 + $Duration2
$Result3 = ($AllDuration | Measure-Object -Property TotalMilliseconds -Sum).Sum
$tts = [timespan]::FromMilliseconds($Result3)
$Allt =("{0:hh\:mm\:ss\,fff}" -f $tts)
[pscustomobject]@{'Timespan' = $Allt}
其中$ Duration1 = 09:17:08,000和$ Duration2 = 09:56:53,000(小时:分钟:秒,毫秒) $ AllDuration = 19:14:01,000($ Duration1和$ Duration2之和)
问题是:当总和大于24小时时,结果是24小时后超出的小时数。
例如:19:00:00,000 + 10:00:00,000 >>>应该是29:00:00,000,但是显示的结果是05:00:00,000
我该如何解决才能显示正确的结果?
感谢您的帮助!
答案 0 :(得分:1)
TimeSpan
对象将时间跨度分为天,小时,分钟,秒和毫秒。因此,您只是省略了格式规范中的天数部分。您可以使用d
说明符来显示日期:
$Allt =("{0:d\:hh\:mm\:ss\,fff}" -f $tts)
如果您只想显示总小时数,则必须自己计算:
$Allt =("{0}:{1:mm\:ss\,fff}" -f ($tts.Days*24 + $tts.Hours),$tts)