Mark Whittinghill
mwhittinghill at symphonyinfo.com
Thu Jul 31 15:48:02 CDT 2003
Yes, I got a bit further into it, and realized I needed a second parameter, as won't be using it for today only. In my version, I pass Date or the Enddate, and make the second parameter a date type, but it's the same thing. Mark Whittinghill Symphony Information Services 612-333-1311 mwhittinghill at symphonyinfo.com ----- Original Message ----- From: "Heenan, Lambert" <Lambert.Heenan at AIG.com> To: "'Access Developers discussion and problem solving'" <accessd at databaseadvisors.com> Sent: Thursday, July 31, 2003 3:34 PM Subject: RE: [AccessD] Age calculation function > Here's another solution... > > Public Function CalculateAge(datBirth As Date, Optional endDate As Variant) > As Long > > Dim lngNumDays As Long > Dim eDate As Date > If IsMissing(endDate) Then > eDate = Date > Else > eDate = endDate > End If > lngNumDays = DateDiff("d", datBirth, eDate) > If Day(datBirth) = Day(eDate) And Month(datBirth) = Month(eDate) Then > ' it's the actual birthday > ' add 1 to compensate for .25 in the division > lngNumDays = lngNumDays + 1 > End If > CalculateAge = Int(lngNumDays / 365.25) > End Function > > Note the second variant (date) parameter. That allows you to calculate the > age on any specific date, not just 'today'. > > Lambert >