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

 

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.