[FAQ CENTER トップ]
[Powershell FAQ トップへ]



【Powershell】昨日、明日、明後日、一か月前、来年、翌年などを計算する



更新日:2022/03/13


このページでは Windows 10 における Powershell で昨日、明日、明後日、一か月前、来年、翌年などを計算するサンプルプログラムを多数紹介します。
Powershell ではこれらの計算はとても簡単です。

Get-Date コマンドレットにより本日の日付を取得することが可能です。この日付に対して、AddDays , AddMonths , AddYears を使用しています。

AddDays ・・・ 日付の増減
AddMonths ・・・月の増減
AddYears ・・・年の増減
・文字列内では $(コマンド) によりコマンドの結果を文字列で埋め込むことが可能です。

サンプルコード集

以下は Windows 10 環境におけるサンプルコードと実行結果です。

次のサンプルでは本日、昨日、明日、明後日、おとといの日付を計算しています。サンプルプログラムの実行日は 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