GetOceanDay(日付)

指定項目 内 容
 日付  海の日を取得する日付を指定します。

戻り値  海の日

実施年 月日
 1996〜2002  7月20日
 2003〜  7月の第3月曜日
 2020  7月23日
 2021  7月22日

        Dim w As New ChoiKits.Day

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

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

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

      

      

      

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

    Public Function GetOceanDay(ByVal wrk_day As Date) As Date

        '【海の日】を取得する

        '日付?

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

        '2020年 の【海の日】は7月23日である

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

        '2021年 の【海の日】は7月22日である

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

        '7月20日(1996〜2002)

        If wrk_day.Year >= 1996 _
            And wrk_day.Year <= 2002 Then
            Return DateSerial(wrk_day.Year, 7, 20)
        End If

        '7月の第3月曜日(2003〜)

        If wrk_day.Year >= 2003 Then

            Dim dt As Date

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

        End If

        Return wrk_day

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