Home >
Windows にまつわる e.t.c.
今日が第何週なのかを PowerShell で調べる
第3週には〇〇にログを出力するといった今日は第何週なのかを知る必要があったので、PowerShell 関数にしてみました。
##################################################
# 第何週か
##################################################
function GetWeekOfMonth( [datetime]$TergetDate ){
# 1日の曜日と第1土曜日の日付 ハッシュテーブル
$1stSaturdayOffset = @{
[System.DayOfWeek]"Sunday" = 7 # 日曜日
[System.DayOfWeek]"Monday" = 6 # 月曜日
[System.DayOfWeek]"Tuesday" = 5 # 火曜日
[System.DayOfWeek]"Wednesday" = 4 # 水曜日
[System.DayOfWeek]"Thursday" = 3 # 木曜日
[System.DayOfWeek]"Friday" = 2 # 金曜日
[System.DayOfWeek]"Saturday" = 1 # 土曜日
}
if( $TergetDate -eq $null ){
$TergetDate = Get-Date
}
# 今月の1日
$1stDay = [datetime]$TergetDate.ToString("yyyy/MM/1")
# 第1土曜日の日付
$1stSaturday = $1stSaturdayOffset[$1stDay.DayOfWeek]
# 今月の月末日付
$Next1stDay = $1stDay.AddMonths(1)
$LastDay = ($Next1stDay.AddDays(-1)).Day
# 今月の土曜日の日付
$Saturdays = @()
for($i = $1stSaturday; $i -lt $LastDay; $i += 7){
$Saturdays += $i
}
# 今日の日付
$Today = $TergetDate.Day
# 今日が第何週か
$MaxIndex = $Saturdays.Count
for($i = 0; $i -lt $MaxIndex; $i++){
if( $Today -le $Saturdays[$i] ){
break
}
}
$Weeks = $i + 1
return $Weeks
}
|
関連情報
.ps1 に組み込んで使うこと想定で書きましたが、PowerShell プロンプトで実行したい場合はこちらもどうぞ
関数を PowerShell プロンプトで実行する
http://www.vwnet.jp/Windows/PowerShell/2016100401/UseFunctionInPsPrompt.htm
Copyright © MURA
All rights reserved.