HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


PowerShellの開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > PowerShell Tips > 自作関数 Tips メニュー

13.指定した年月の第1日曜日を取得する

 
UPDATE:2008/05/03    
 



指定した年月の第1日曜日を取得する関数を作成しました。

Get-FirstSunday.ps1

#===============================================================================
# Get-FirstSunday: 指定した年月の第1日曜日を取得する
#
# パラメータ:
# $Year: 年(省略した場合は現在の年)
# $Month: 月(省略した場合は現在の月)
#
# 使用例1(年月指定)
# PS > Get-FirstSunday 2008 2
#
# 使用例2(年月省略)
# PS > Get-FirstSunday
#
# copyright HIRO's.NET(http://hiros-dot.net/)
#===============================================================================
function global:Get-FirstSunday
{
Param ([int]$Year = $(Get-Date).Year, [int]$Month = $(Get-Date).Month)
for ( $i = 0; $i -lt 7; $i++ )
{
$checkDay = New-Object DateTime($Year, $Month, [int]($i + 1))
if ( $checkDay.DayOfWeek -eq 0 )
{
break
}
}
return $i + 1
}

使用方法は、List1の様に 関数名[Enter] と入力すると、当月の第一日曜日の日を返します。
2008/05/03にこの関数を実行すると、第一日曜日は5/4なので"4"を返します。

List1

PS > Get-FirstSunday
4

List2のように Get-irstSunday 年 月[Enter] と入力した場合は 2008年6月の第1日曜日である"1"を返します。

List2

PS > Get-FirstSunday 2008 6
1

開発ポイントですが、この関数は DateTime 構造体の DayOfWeek メソッドを使用し、指定した年月の1~7までのどれが日曜日かを判定して返します。