Powershell时间跨度总和,结果超过24小时

时间:2020-08-27 22:35:34

标签: powershell

因此,我需要一些帮助来解决时间跨度总和中的一个小问题。

我有这段代码可以对两个变量的时间求和。

    $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

我该如何解决才能显示正确的结果?

感谢您的帮助!

1 个答案:

答案 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)
相关问题