更新日: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 トップ]
本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2018