我的代码中有两个持续时间。我想添加它们以获取总持续时间。
许多代码示例为日期添加了一些持续时间,但是我在这里有两个持续时间。
DispatcherPriority
我该如何总结才能达到30分钟,即e。 00:30:00?
答案 0 :(得分:1)
我认为有两种选择。
第一个: 将您的时间重新转换为秒,然后将其汇总。像这样:
$Time1 = "01:56:40"
$textReformat1 = $Time1 -replace ",","."
$Time2 = "01:56:40"
$textReformat2 = $Time2 -replace ",","."
$seconds = ([TimeSpan]::Parse($textReformat1)).TotalSeconds + ([TimeSpan]::Parse($textReformat2)).TotalSeconds
$TimeSpan = [timespan]::fromseconds($seconds)
("{0:HH\:mm\:ss}" -f [DateTime]$TimeSpan.Ticks)
还有第二种选择(简单的一种):
在将它们转换为字符串之前,只需将所有内容一起计算即可。像这样:
("{0:HH\:mm\:ss}" -f ([datetime]$analysisDuration.Ticks + $executionDuration.Ticks))
积分可以: Convert seconds to hh:mm:ss,fff format in PowerShell
例如,如何将时间跨度转换回秒数
答案 1 :(得分:1)
您可以直接将两个TimeSpan
实例直接添加在一起,而无需转换为DateTime
并返回:
$total = $executionDuration + $analysisDuration
就像使用DateTime
实例一样,您现在可以使用-f
字符串格式运算符,但是请注意,您需要转义特殊字符:
'{0:hh\:mm\:ss}' -f $total