Как добавить длительности в Powershell? - PullRequest
1 голос
/ 23 мая 2019

У меня есть две длительности в моем коде. И я хочу добавить их, чтобы получить общую продолжительность.

Многие примеры кода добавляют некоторую длительность к дате, но у меня есть две продолжительности.

$startOfAnalysis = $(Get-Date)
#Analysis code here
$analysisDuration = $(Get-Date) - $startOfAnalysis
$totalAnalysisTime = "{0:HH:mm:ss}" -f ([datetime]  $analysisDuration.Ticks)
$totalAnalysisTime #Outputs similar to 00:16:21

$startOfExecution = $(Get-Date)
#Execution code here
$executionDuration = $(Get-Date) - $startOfExecution
$totalExecutionTime = "{0:HH:mm:ss}" -f ([datetime]$executionDuration.Ticks)
$totalExecutionTime #Outputs similar to 00:13:39

#($totalAnalysisTime+$totalExecutionTime) How to add the two to get 00:30:00?

Как мне подвести итог, чтобы сделать это за 30 минут, т.е. е. 00: 30: 00

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Вы можете напрямую добавить два TimeSpan экземпляра вместе, нет необходимости конвертировать в DateTime и обратно:

$total = $executionDuration + $analysisDuration

Так же, как с экземпляром DateTime, теперь вы можете использовать -f оператор форматирования строки, но имейте в виду, что вам нужно экранировать специальные символы:

'{0:hh\:mm\:ss}' -f $total
1 голос
/ 23 мая 2019

Я думаю, что есть два варианта.

Первый: Преобразуйте время в секунды, а затем суммируйте их. Вот так:

$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))

Кредит для: Преобразование секунд в формат чч: мм: сс, fff в PowerShell

Например, как преобразовать временной интервал в секунды

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...