Powershell 将分钟四舍五入到最近的10分钟

Powershell 将分钟四舍五入到最近的10分钟,powershell,Powershell,我正在使用powershell获取十天前的日期和时间。为此,我使用以下方法 $date10DaysAgo = (get-date).adddays(-10).tostring("yyyy-MM-dd HH:mm") 这是每半小时运行一次的脚本的一部分。有时运行脚本时会延迟大约一分钟,但我希望字符串的时间部分显示小时或半小时。因此,如果它在16:31运行,我需要它显示16:30,如果它在17:01运行,它将显示17:00。您可以通过从分钟数中减去$date10DaysAgo.Minute%10来

我正在使用powershell获取十天前的日期和时间。为此,我使用以下方法

$date10DaysAgo = (get-date).adddays(-10).tostring("yyyy-MM-dd HH:mm")

这是每半小时运行一次的脚本的一部分。有时运行脚本时会延迟大约一分钟,但我希望字符串的时间部分显示小时或半小时。因此,如果它在16:31运行,我需要它显示16:30,如果它在17:01运行,它将显示17:00。

您可以通过从分钟数中减去
$date10DaysAgo.Minute%10
来实现这一点:

$date10DaysAgo = (get-date).adddays(-10)
$date10DaysAgo = $date10DaysAgo.AddMinutes(- $date10DaysAgo.Minute % 10).toString("yyyy-MM-dd HH:mm")

不漂亮,但它可以工作:

$ago = (Get-Date).AddDays(-10)

$newMinute = ($ago.Minute / 30) * 30

$ago = Get-Date -Year $ago.Year -Month $ago.Month -Day $ago.Day -Hour $ago.Hour -Minute $newMinute 

Write-Host $ago.tostring("yyyy-MM-dd HH:mm")

谢谢,这到底是干什么的。如中所示,%10的实际含义是什么?这是模运算符。“x%10”表示x除以10的余数。