このエントリーをはてなブックマークに追加


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

各オブジェクト・メソッド・プロパティの説明

上記のメソッドやプロパティで、曜日が取得できる仕組みを以下に記します。

  1. Get-DateコマンドレットでDateTimeオブジェクトが返却されます。
    PS C:\> $d = Get-Date
    PS C:\> $d.GetType()
    
    IsPublic IsSerial Name                                     BaseType
    -------- -------- ----                                     --------
    True     True     DateTime                                 System.ValueType
  2. 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...
  3. DayOfWeekプロパティで返却されるオブジェクトを確認すると、Enumであることが確認できます。
    PS C:\> $d.DayOfWeek.GetType()
    
    IsPublic IsSerial Name                                     BaseType
    -------- -------- ----                                     --------
    True     True     DayOfWeek                                System.Enum
  4. 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;}

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



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-04-06 (金) 21:11:57