更新日:2022/03/13
このページでは Windows 10 における Powershell で昨日、明日、明後日、一か月前、来年、翌年などを計算するサンプルプログラムを多数紹介します。
Powershell ではこれらの計算はとても簡単です。
Get-Date コマンドレットにより本日の日付を取得することが可能です。この日付に対して、AddDays , AddMonths , AddYears を使用しています。
AddDays ・・・ 日付の増減
AddMonths ・・・月の増減
AddYears ・・・年の増減
・文字列内では $(コマンド) によりコマンドの結果を文字列で埋め込むことが可能です。
次のサンプルでは本日、昨日、明日、明後日、おとといの日付を計算しています。サンプルプログラムの実行日は 2020年8月20日です。
サンプルコード:
#変数に代入してから表示
$Today = Get-Date
write-host "今日の日付 $Today `r`n"
#直接表示
write-host "昨日の日付 $((Get-Date).AddDays(-1)) `r`n"
write-host "明日の日付 $((Get-Date).AddDays(1)) `r`n"
write-host "一昨日(おととい)の日付 $((Get-Date).AddDays(-2)) `r`n"
write-host "明後日(あさって)の日付 $((Get-Date).AddDays(2)) `r`n"
今日の日付 08/20/2020 13:58:50
昨日の日付 08/19/2020 13:58:50
明日の日付 08/21/2020 13:58:50
一昨日(おととい)の日付 08/18/2020 13:58:50
明後日(あさって)の日付 08/22/2020 13:58:50
一週間前、及び一週間後の日付を計算します。
AddDays に -7 あるいは 7 を足すことにより一週間前、一週間後を計算しています。サンプルプログラムの実行日は 2020年8月20日です。
サンプルコード:
write-host "一週間前の日付 $((Get-Date).AddDays(-7)) `r`n"
write-host "一週間後の日付 $((Get-Date).AddDays(7)) `r`n"
一週間前の日付 08/13/2020 14:03:01
一週間後の日付 08/27/2020 14:03:01
一か月前、及び一か月後に日付を計算します。
AddMonthsに -1 あるいは 1 を足すことにより一か月前、一か月後を計算しています。サンプルプログラムの実行日は 2020年8月20日です。
サンプルコード:
write-host "一か月前の日付 $((Get-Date).AddMonths(-1)) `r`n"
write-host "一か月後の日付 $((Get-Date).AddMonths(1)) `r`n"
一か月前の日付 07/20/2020 14:05:09
一か月後の日付 09/20/2020 14:05:09
一年前、及び一年後の日付を計算します。
AddYearsに -1 あるいは 1 を足すことにより一か月前、一か月後を計算しています。サンプルプログラムの実行日は 2020年8月20日です。
サンプルコード:
write-host "一年前の日付 $((Get-Date).AddYears(-1)) `r`n"
write-host "一年後の日付 $((Get-Date).AddYears(1)) `r`n"
一年前の日付 08/20/2019 14:05:39
一年後の日付 08/20/2021 14:05:39
本日(2020年8月20日)より一年半後の日付を求めます。
一年と半月後なので 18 月を足すことにより実現しています。AddYears(1.5) のような計算は出来ませんでした、
サンプルコード:
write-host "一年と半月後の日付 $((Get-Date).AddMonths(18)) `r`n"
一年と半月後の日付 02/20/2022 14:08:40
一年後の日付の曜日を求めるサンプルです。
AddYears(1) で1年後を求めた後、DayOfWeekで曜日を求めています。英語で戻ります。
サンプルコード:
$Today = (Get-Date).AddYears(1)
$Today.DayOfWeek
Friday
一週間分の曜日を出力するサンプルプログラムです。
サンプルコード:
write-host ((Get-Date).AddDays(1)).DayOfWeek
write-host ((Get-Date).AddDays(2)).DayOfWeek
write-host ((Get-Date).AddDays(3)).DayOfWeek
write-host ((Get-Date).AddDays(4)).DayOfWeek
write-host ((Get-Date).AddDays(5)).DayOfWeek
write-host ((Get-Date).AddDays(6)).DayOfWeek
write-host ((Get-Date).AddDays(7)).DayOfWeek
Friday
Saturday
Sunday
Monday
Tuesday
Wednesday
Thursday
[Powershell FAQ トップへ]
[FAQ CENTER トップ]