如何在Powershell中添加持续时间?

时间:2019-05-23 09:31:11

标签: powershell

我的代码中有两个持续时间。我想添加它们以获取总持续时间。

许多代码示例为日期添加了一些持续时间,但是我在这里有两个持续时间。

DispatcherPriority

我该如何总结才能达到30分钟,即e。 00:30:00?

2 个答案:

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