2016-09-27 17 views
0

私はpowershellを使用して10日前の日付と時刻を取得しています。これを行うには、以下を使用しています。分数を最も近い10分に丸める

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

これは30分ごとに実行されるスクリプトの一部です。時には約1分のスクリプトの実行に遅延がありますが、文字列の時間部分に時間または半時間を表示することが必要です。 16時31分に実行された場合、16時30分に表示する必要があります。17時01分に実行された場合、17時を表示します。

答えて

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"は、xを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") 
関連する問題