GetSportsDay(日付)

指定項目 内 容
 日付  スポーツの日(体育の日)を取得する日付を指定します。

戻り値  スポーツの日(体育の日)

実施年 月日
 1966〜1999  10月10日
 2000〜  10月の第2月曜日
 2020  7月24日
 2021  7月23日

        Dim w As New ChoiKits.Day

        MsgBox("日付は" & DateSerial(2020, 5, 31) & " です。" & vbCrLf &
               "この年の体育の日は" & w.GetSportsDay(DateSerial(2020, 5, 31)) & "です。", , "体育の日を取得する")

        MsgBox("日付は" & DateSerial(2021, 5, 31) & " です。" & vbCrLf &
               "この年の体育の日は" & w.GetSportsDay(DateSerial(2021, 5, 31)) & "です。", , "体育の日を取得する")

        MsgBox("日付は" & DateSerial(2022, 5, 31) & " です。" & vbCrLf &
               "この年の体育の日は" & w.GetSportsDay(DateSerial(2022, 5, 31)) & "です。", , "体育の日を取得する")

      

      

      

      サンプルプログラムダウンロード

    Public Function GetSportsDay(ByVal wrk_day As Date) As Date

        '【スポーツの日(体育の日)】を取得する

        '日付?

        If IsDate(wrk_day) = False Then
            Return wrk_day
        End If

        '10月10日(1966〜1999)

        If wrk_day.Year >= 1966 _
            And wrk_day.Year <= 1999 Then
            Return DateSerial(wrk_day.Year, 10, 10)
        End If

        '2020年 の【スポーツの日】は7月24日である

        If wrk_day.Year = 2020 Then
            Return DateSerial(wrk_day.Year, 7, 24)
        End If

        '2021年 の【スポーツの日】は7月23日である

        If wrk_day.Year = 2021 Then
            Return DateSerial(wrk_day.Year, 7, 23)
        End If

        '10月の第2月曜日(2000〜)

        If wrk_day.Year >= 2000 Then

            Dim dt As Date

            dt = DateSerial(wrk_day.Year, 10, 1)

            Return DateSerial(wrk_day.Year, 10, ((9 - (CInt(dt.DayOfWeek) + 1)) Mod 7) + 8)

        End If

        Return wrk_day

    End Function
 ChoiKits  
 Microsoft  
 ステートメント  
 オブジェクト  
 メソッド  
 プロパティ