2016-09-27 35 views
0

我正在使用powershell來獲取十天前的日期和時間。爲此,我正在使用以下內容向下舍入分鐘精確到10分鐘

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

這是每半小時運行一次腳本的一部分。有時在運行約一分鐘的腳本時會有延遲,但我希望字符串的時間部分顯示一小時或半小時。所以如果這在16:31運行,我需要它顯示16:30,如果運行在17:01它會顯示17:00。

回答

2

您可以通過減去分鐘$date10DaysAgo.Minute % 10做到這一點:

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

謝謝,這是什麼做的完全一樣。如其中,%10實際上是什麼意思? – Silentbob

+0

這就是模運算符。 「x%10」表示除以10的餘數。 – agnul

0

不漂亮,但它的工作原理:

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