IsOceanDay(日付)

指定項目 内 容
 日付  判定する日付を指定します。

戻り値 内 容
真(true)  海の日である。
偽(False)  海の日でない。

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

        Dim w As New ChoiKits.Day
        Dim W_Day As Date

        W_Day = "2020/7/23"

        If w.IsOceanDay(W_Day) = True Then
            MsgBox(W_Day & " は海の日です。", , "海の日か否か判定する")
        Else
            MsgBox(W_Day & " は海の日ではありません。", , "海の日か否か判定する")
        End If

        W_Day = "2021/7/22"

        If w.IsOceanDay(W_Day) = True Then
            MsgBox(W_Day & " は海の日です。", , "海の日か否か判定する")
        Else
            MsgBox(W_Day & " は海の日ではありません。", , "海の日か否か判定する")
        End If

        W_Day = "2020/7/20"

        If w.IsOceanDay(W_Day) = True Then
            MsgBox(W_Day & " は海の日です。", , "海の日か否か判定する")
        Else
            MsgBox(W_Day & " は海の日ではありません。", , "海の日か否か判定する")
        End If

        W_Day = "2021/7/23"

        If w.IsOceanDay(W_Day) = True Then
            MsgBox(W_Day & " は海の日です。", , "海の日か否か判定する")
        Else
            MsgBox(W_Day & " は海の日ではありません。", , "海の日か否か判定する")
        End If

        W_Day = "2021/7/19"

        If w.IsOceanDay(W_Day) = True Then
            MsgBox(W_Day & " は海の日です。", , "海の日か否か判定する")
        Else
            MsgBox(W_Day & " は海の日ではありません。", , "海の日か否か判定する")
        End If

        W_Day = "2022/7/18"

        If w.IsOceanDay(W_Day) = True Then
            MsgBox(W_Day & " は海の日です。", , "海の日か否か判定する")
        Else
            MsgBox(W_Day & " は海の日ではありません。", , "海の日か否か判定する")
        End If

      

      

      

      

      

      

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

    Public Function IsOceanDay(ByVal wrk_day As Date) As Boolean

        '【海の日】か否かを判定する

        '日付?

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

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

        If wrk_day.Year = 2020 _
            And wrk_day.Month = 7 And wrk_day.Day = 23 Then
            Return True
        End If

        '2020年 の【海の日】は7月20日(第3月曜日)ではない

        If wrk_day.Year = 2020 _
            And wrk_day.Month = 7 And wrk_day.Day = 20 Then
            Return False
        End If

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

        If wrk_day.Year = 2021 _
            And wrk_day.Month = 7 And wrk_day.Day = 22 Then
            Return True
        End If

        '2021年 の【海の日】は7月19日(第3月曜日)ではない

        If wrk_day.Year = 2021 _
            And wrk_day.Month = 7 And wrk_day.Day = 19 Then
            Return False
        End If

        '7月20日(1996〜2002)

        If wrk_day.Year >= 1996 _
            And wrk_day.Year <= 2002 _
            And wrk_day.Month = 7 And wrk_day.Day = 20 Then
            Return True
        End If

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

        If (wrk_day.Year >= 2003 And wrk_day.Month = 7) Then
            Dim dt As Date
            dt = DateSerial(wrk_day.Year, wrk_day.Month, 1)
            If wrk_day = DateSerial(wrk_day.Year, wrk_day.Month, ((9 - (CInt(dt.DayOfWeek) + 1)) Mod 7) + 15) Then
                Return True
            End If
        End If

        Return False

    End Function

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