PowerShell: 曜日を英語・日本語で取得する
曜日を英語で取得する
DateTimeクラスのDayOfWeekプロパティを使うと 曜日を英語(Sunday, Monday, ..)で取得できます。
まずは今日の曜日を取得してみます。
Get-Dateコマンドレットで今日の日時を取得して、
DayOfWeekプロパティで曜日を取得します。
$d = Get-Date $d $d.DayOfWeek # 実行結果 2022年1月29日 3:25:39 Saturday
Get-Dateの代わりにNowプロパティを使っても同じです。
[datetime]::Now [datetime]::Now.DayOfWeek # 実行結果 2022年1月29日 3:30:53 Saturday
特定の日付の曜日を取得したい場合、 日付の文字列をDateTime型に変換してからDayOfWeekプロパティを使用します。 次のコードは2022年1月2日の曜日を取得しています。
$d = [datetime]"2022/1/2" $d.DayOfWeek # 実行結果 Sunday
英語の曜日を省略名(Sun, Mon, ...)にしたい場合、 曜日を文字列に変換し、 Substringメソッドで最初の3文字を取得します。
$d = [datetime]"2022/1/2" $s = [string]$d.DayOfWeek $s.Substring(0, 3) # 実行結果 Sun
曜日を日本語で取得する
曜日を日本語で取得する場合、
DatetimeクラスのToStringメソッドの書式指定で曜日だけを指定します。
具体的には「ToString("dddd")」や「ToString("ddd")」と記述します。
"dddd"と指定すると日曜日・月曜日といった完全名が取得でき、
"ddd"と指定すると日・月といった省略名が取得できます。
(関連記事:
日付をyyyymmdd、時刻をhhmmss形式で取得)
次のコードは今日の曜日を完全名と省略名の両方で取得しています。
$d = [datetime]::Now $d $d.ToString("dddd") $d.ToString("ddd") # 実行結果 2022年1月29日 3:55:24 土曜日 土
特定の日付の曜日を日本語で取得する場合も、 先程と同じように日付の文字列をDateTime型にキャストして ToStringメソッドを使います。 次のコードは2021年12月31日の曜日を取得しています。
$d = [datetime]"2021/12/31" $d $d.ToString("dddd") $d.ToString("ddd") # 実行結果 2021年12月31日 0:00:00 金曜日 金
(まとめ記事: PowerShell 日付・時刻)