PowerShellで当日・指定日付の曜日を取得する方法 †
Get-Dateコマンドレットで、当日、指定日付の曜日を取得するサンプルを以下に記します。
関連記事 †
当日の曜日を取得する †
Get-Dateコマンドレットで返却される当日のDateTimeおぷじぇくとのDayOfWeekプロパティの値を表示するサンプルです。
PS C:\> (Get-Date).DayOfWeek
Friday
指定日付の曜日を取得する †
以下の例は、2020/1/1を日付として設定し、設定した日付の曜日を取得するサンプルになります。
PS C:\> (Get-Date "2020/1/1").DayOfWeek
Wednesday
構文は以下のようになります。
(Get-Date "日付").DayOfWeek
英単語の日付ではなく、値で曜日を取得する †
値で曜日を取得する場合は、value__を使用します。(ダブルアンダースコアです)
PS C:\> (Get-Date "2020/1/1").DayOfWeek.value__
3
PS C:\> (Get-Date).DayOfWeek.value__
5
以下、一週間分の曜日および、曜日に対する値を出力するサンプルになります。
PS C:\> $day = Get-Date
PS C:\> for ($i=1; $i -le 7; $i++) {
>> $sd = $day.ToShortDateString()
>> $sw = $day.DayOfWeek
>> $nw = $day.DayOfWeek.value__
>> "{0,10} {1,-9} {2,1}" -f $sd, $sw, $nw
>> $day = $day.AddDays(1)
>> }
2018/04/06 Friday 5
2018/04/07 Saturday 6
2018/04/08 Sunday 0
2018/04/09 Monday 1
2018/04/10 Tuesday 2
2018/04/11 Wednesday 3
2018/04/12 Thursday 4
各オブジェクト・メソッド・プロパティの説明 †
上記のメソッドやプロパティで、曜日が取得できる仕組みを以下に記します。
- Get-DateコマンドレットでDateTimeオブジェクトが返却されます。
PS C:\> $d = Get-Date
PS C:\> $d.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True DateTime System.ValueType
- DateTimeオブジェクトのメソッド・プロパティを確認すると、DayOfWeekプロパティがあるのが確認できます。
PS C:\> $d | Get-Member
TypeName: System.DateTime
Name MemberType Definition
---- ---------- ----------
Add Method datetime Add(timespan value)
AddDays Method datetime AddDays(double value)
AddHours Method datetime AddHours(double value)
<省略
DayOfWeek Property System.DayOfWeek DayOfWeek {get;}
<省略>
TimeOfDay Property timespan TimeOfDay {get;}
Year Property int Year {get;}
DateTime ScriptProperty System.Object DateTime {get=if ((& { Set-StrictMode -Version 1; $this.DisplayHin...
- DayOfWeekプロパティで返却されるオブジェクトを確認すると、Enumであることが確認できます。
PS C:\> $d.DayOfWeek.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True DayOfWeek System.Enum
- DayOfWeekのメンバーを確認すると、value__があるのが確認できます。
PS C:\> $d.DayOfWeek | Get-Member
TypeName: System.DayOfWeek
Name MemberType Definition
---- ---------- ----------
CompareTo Method int CompareTo(System.Object target), int IComparable.CompareTo(System.Object obj)
Equals Method bool Equals(System.Object obj)
<省略>
value__ Property int value__ {get;set;}
以上の調べ方により、使用できるメソッドやプロパティを知ることができます。