#author("2018-04-06T21:11:57+09:00","","")
#navi(../)
* PowerShellで当日・指定日付の曜日を取得する方法 [#h0a01b93]
Get-Dateコマンドレットで、当日、指定日付の曜日を取得するサンプルを以下に記します。

#contents
#htmlinsertpcsp(win-top.html,win-sp.html)

* 関連記事 [#sec66696]
-[[本日が月末かどうかを判定するスクリプト>PowerShell/本日が月末かどうかを判定するスクリプト]]
-[[PowerShellで文字列の日時をDateTimeオブジェクトにする方法>PowerShell/文字列の日時をDateTimeオブジェクトにする方法]]

* 当日の曜日を取得する [#j023d1d0]
Get-Dateコマンドレットで返却される当日のDateTimeおぷじぇくとのDayOfWeekプロパティの値を表示するサンプルです。
 PS C:\> (Get-Date).DayOfWeek
 Friday

* 指定日付の曜日を取得する [#aada9337]
以下の例は、2020/1/1を日付として設定し、設定した日付の曜日を取得するサンプルになります。
 PS C:\> (Get-Date "2020/1/1").DayOfWeek
 Wednesday
構文は以下のようになります。
 (Get-Date "日付").DayOfWeek

* 英単語の日付ではなく、値で曜日を取得する [#g65c9b13]
値で曜日を取得する場合は、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

* 各オブジェクト・メソッド・プロパティの説明 [#o232bafc]
上記のメソッドやプロパティで、曜日が取得できる仕組みを以下に記します。
+ 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;}

以上の調べ方により、使用できるメソッドやプロパティを知ることができます。

#htmlinsertpcsp(win-btm.html,win-sp.html)


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS