社内SEの話

日々起きたことの記録用

【Powershell 】月初、月末を求める

↓プログラミングで副業を考えたらこちら↓

特定の日付から、その月の月初の日と月末の日を知りたいケースが度々発生します。

主にはSQLの日付をWhereするときに使います。

月の締め処理で対象の月の日付の範囲選択によく使われます。

月初

$today = Get-Date

$firstday = (Get-Date -date $today -Day 1)

$firstday

月末

$today = Get-Date

$lastday = (Get-Date -date $today -Day 1).AddMonths(1).AddDays(-1)

$lastday

やっていること

PowerShellで日付型での処理をする時はGet-Date関数を使います。

月初の場合は、特定の日付のDayを1に置換すれば月初に変換されます。

月末の場合は少し凝っていますがわかってしまえば難しくありません。

  1. (Get-Date -date $today -Day 1) 月初に変換します。 例)2022-11-01

  2. .AddMonths(1) 翌月に変更します。例)2022-12-01

  3. .AddDays(-1) -1日を日付計算させます。例)2022-12-01 の -1は 2022-11-30になります