Привет, ребята. Сейчас я пишу сценарий PowerShell, который в основном читает файл, в котором он ищет шаблон и получает время. Значения, такие как: 15:22:33. Значения хранятся в 2 массивах - Out Array и In Array, которые оба содержат значения одного и того же типа.
Поэтому я вычитаю 2 значения и создаю интервал времени, который, например, рассчитывает время между этими двумя значения.
- 11: 20: 33 и 2. 12:21:33 - поэтому интервал времени правильно показывает мне, что разница составляет 01:01:00, что правильно c.
Теперь моя проблема в том, что мне также нужно вычислить разницу, если следующая дата будет завтра.
Итак, возьмем этот пример:
- 12: 00: 00 и 2. 05:00:00 - если я использую ту же функцию, что и выше, просто вычтите значения, которые я получу -07: 00: 00, но нужное мне значение будет 17:00:00.
Как будет выглядеть математическая функция для вычисления значения на следующий день? Я могу проверить это с помощью инструкции IF, потому что, если второе значение меньше, чем первое, очевидно, на следующий день. Но я действительно не знаю, как правильно оценить c время.
Какой-то код:
for($i = 0; $i -lt $outVar.Length; $i++) {
$testOut = $outVar[$i].Line.Split("(")[0]
$testIn = $inVar[$i].Line.Split("(")[0]
$userOut = $outVar[$i].Line.Split('"')[2]
$userIn = $inVar[$i].Line.Split('"')[2]
#$testOut + $testIn
$ConvertedStart = [datetime]::Parse($testOut)
$ConvertedEnd = [datetime]::Parse($testIn)
$loggedTimeTestSTART = New-TimeSpan $ConvertedStart
$loggedTimeTestEND = New-TimeSpan $ConvertedEnd
[System.Collections.ArrayList]$resultArray = @();
if($loggedTimeTestSTART -gt $loggedTimeTestEND) {
$loggedTimeTestFinal = $loggedTimeTestSTART.Subtract($loggedTimeTestEND)
# $resultArray.Add($loggedTimeTestFinal)
#$resultArray += $loggedTimeTestFinal
$array += $loggedTimeTestFinal.ToString() + $userOut
} else {
$loggedTimeTestFinal = "Minus cuz next day " + $loggedTimeTestSTART.Subtract($loggedTimeTestEND)
# $resultArray.Add($loggedTimeTestFinal);
#$resultArray += $loggedTimeTestFinal
$array += $loggedTimeTestFinal.ToString() + $userOut
}
}
, как вы можете видеть в моем случае Если части else нужно будет выполнить какой-то другой расчет, чтобы получить разницу в реальном времени (временной интервал) между двумя значениями, если второе один поменьше.