-------------------うるう年かどうかを調べる関数-----------------

Public Function Uruudoshi(y As Integer) As Integer

Dim u As Integer

 

If (y Mod 4) <> 0 Then

    u = 0

ElseIf (y Mod 100) <> 0 Then

    u = 1

ElseIf (y Mod 400) <> 0 Then

    u = 0

Else

    u = 1

End If

 

Uruudoshi = u

End Function

 

‘----------------------------その日がその年の何日めかを調べる関数------------------------------

Public Function Nannichime(y As Integer, m As Integer, d As Integer) As Integer

Dim dd As Integer

Dim mdays As Integer

Dim u As Integer

 

u = Uruudoshi(y)

 

Select Case m

    Case 1

        mdays = 0

    Case 2

        mdays = 31

    Case 3

        mdays = 31 + (28 + u)

    Case 4

        mdays = 31 + (28 + u) + 31

    Case 5

        mdays = 31 + (28 + u) + 31 + 30

    Case 6

        mdays = 31 + (28 + u) + 31 + 30 + 31

    Case 7

        mdays = 31 + (28 + u) + 31 + 30 + 31 + 30

    Case 8

        mdays = 31 + (28 + u) + 31 + 30 + 31 + 30 + 31

    Case 9

        mdays = 31 + (28 + u) + 31 + 30 + 31 + 30 + 31 + 31

    Case 10

        mdays = 31 + (28 + u) + 31 + 30 + 31 + 30 + 31 + 31 + 30

    Case 11

        mdays = 31 + (28 + u) + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31

    Case 12

        mdays = 31 + (28 + u) + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30

End Select

 

dd = mdays + d

 

Nannichime = dd

End Function

 

‘--------------ソフト本体----------------

Private Sub Command1_Click()

 

Dim Birthday As YMDday

Dim Today As YMDday

Dim Xyear As Integer

Dim Days As Long

Dim mdays As Integer

Dim Bdays As Integer

Dim Tdays As Integer

 

If Val(Text1.Text) > Year(Now) Then

Label14.Caption = "入力エラー"

ElseIf Val(Text2.Text) > 12 Then

Label14.Caption = "入力エラー"

ElseIf Val(Text3.Text) > 31 Then

Label14.Caption = "入力エラー"

Else

Label14.Caption = ""

End If

 

Birthday.Year = Val(Text1.Text)

Birthday.Month = Val(Text2.Text)

Birthday.Day = Val(Text3.Text)

Today.Year = Year(Now)

Today.Month = Month(Now)

Today.Day = Day(Now)

 

Text4.Text = Today.Year

Text5.Text = Today.Month

Text6.Text = Today.Day

 

Bdays = Nannichime(Birthday.Year, Birthday.Month, Birthday.Day)

Tdays = Nannichime(Today.Year, Today.Month, Today.Day)

 

If Birthday.Year = Today.Year Then

    Days = Tdays - Bdays + 1

Else

    Days = (365 + Uruudoshi(Birthday.Year)) - Bdays + 1

    Xyear = Birthday.Year + 1

    While Xyear < Today.Year

        Days = Days + 365 + Uruudoshi(Xyear)

        Xyear = Xyear + 1

    Wend

    If Xyear = Today.Year Then

        Days = Days + Tdays

    End If

End If

 

Text7.Text = Days

 

If Birthday.Year > Today.Year Then

    Text7.Text = "Error"

ElseIf Birthday.Year = Today.Year Then

    If Birthday.Month > Today.Month Then

        Text7.Text = "Error"

    ElseIf Birthday.Month = Today.Month Then

        If Birthday.Day > Today.Day Then

            Text7.Text = "Error"

        End If

    End If

End If

 

End Sub

 

‘------------ソフトを終了させる---------

Private Sub Command2_Click()

 End

End Sub

 

‘--------------入力を消去する-----------

Private Sub Command3_Click()

Text1.Text = " "

Text2.Text = " "

Text3.Text = " "

Text7.Text = " "

Label14.Caption = " "

 

End Sub