Finding 18 and older

I need to Exit the Sub if the Birthdate of a person is 18 and over.  Can someone provide me with code to put on an Exit event?
al4629740Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
GrahamSkanConnect With a Mentor RetiredCommented:
I think that this function will be a bit more accurate
Sub Something()
'...
If IsOver18(TheDate) then
    Exit Sub
end if
end sub
 
Function IsOver18(Birthdate As Date) As Boolean
    Dim BirthdayThisYear As Date
    Dim iYears As Integer
    
    iYears = DateDiff("yyyy", Birthdate, Now)
    BirthdayThisYear = DateAdd("yyyy", iYears, Birthdate)
    If Now < BirthdayThisYear Then
        iYears = iYears - 1
    End If
    If iYears >= 18 Then
        IsOver18 = True
    End If
End Function

Open in new window

0
 
game-masterCommented:

try sumthing like this...



Sub checkYear(bDate As Date)
   
    If (Year(Now) - Year(bDate)) >= 18 Then
        MsgBox "more than 18 years old"
exit sub
    End If

End Sub


game-master
0
 
everkleerCommented:
I could be wrong, but do you really need/want that 'BirthdayThisYear' logic?  I think the DateDiff function would take care of that (It seems that you would only need the 'BirthdayThisYear' logic with something like the solution game-master provided.)
0
 
GrahamSkanRetiredCommented:
everkleer,

The conventional meaning of 'Are you a certain age?' generally means 'How many whole years have passed up until your last birthday?'. Simply year VB calculations do not give that answer. DateDiff just gives you the difference between the respective years and could make one appear a year older than the convention says. At my age, that is an important difference; at least it was, for this and any other year, up until my birthday on the 20th March.
0
 
everkleerCommented:
Oh I see.  So is the DateDiff function alone without your added logic basically doing the same thing as the other guy suggested (Year(Now) - Year(bDate))?  I assumed the function would perform the extra logic of calculating whether the birthday had occurred yet this year.  Looks like your birthday is 3 days after mine but you are obviously older & wiser than me!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.