[AccessD] Age calculation function

Mark Whittinghill mwhittinghill at symphonyinfo.com
Fri Aug 1 13:54:07 CDT 2003


Thanks, Bobby.  I have to move to other tasks today, but I'll give this a
whirl soon.

Mark Whittinghill
Symphony Information Services
612-333-1311
mwhittinghill at symphonyinfo.com
----- Original Message ----- 
From: "Bobby Heid" <bheid at appdevgrp.com>
To: "'Access Developers discussion and problem solving'"
<accessd at databaseadvisors.com>
Sent: Friday, August 01, 2003 1:50 PM
Subject: RE: [AccessD] Age calculation function


> Here you go!
>
> Public Function Greg2JD(ByVal strDate As String) As Double
> Dim A    As Long
> Dim B    As Long
> Dim MM   As Long
> Dim YY   As Long
> Dim DD   As Single
>
>    MM = Month(strDate)
>    YY = Year(strDate)
>    DD = Day(strDate)
>
>    'note, you could pass the time of day in as a fraction of a day.
>    'if you do so, simply add the fraction of the day to DD
>    'As is, this code assumes 0 hour, i.e. if it is the 4th,
>    'then it assumed to be the 4th at 12:00:00 AM
>    'DD = DD + sDayFrac     'sDayFrac is the variable holding fraction of
day
>
>    If MM < 3 Then
>       YY = YY - 1
>       MM = MM + 12
>       End If
>
>    A = YY \ 100         'integer math
>    B = 2 - A + A \ 4    'integer math
>
>    Greg2JD = Int(365.25 * (YY + 4716)) + Int(30.6001 * (MM + 1)) + DD +
B -
> 1524.5
>
> End Function
>
>
>
> To work out our example, I called it with:
> Debug.Print (jd("02/18/2002") - jd("02/29/1988")) / 365.25
>
> Bobby
>
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Mark
> Whittinghill
> Sent: Friday, August 01, 2003 2:40 PM
> To: Access Developers discussion and problem solving
> Subject: Re: [AccessD] Age calculation function
>
>
> Sure, I'd like to see it.
>
> Mark Whittinghill
> Symphony Information Services
> 612-333-1311
> mwhittinghill at symphonyinfo.com
> ----- Original Message ----- 
> From: "Bobby Heid" <bheid at appdevgrp.com>
> To: "'Access Developers discussion and problem solving'"
> <accessd at databaseadvisors.com>
> Sent: Friday, August 01, 2003 1:37 PM
> Subject: RE: [AccessD] Age calculation function
>
>
> > Why not convert both to Julian dates and then divide by 365.25?  This
will
> > give you years as a decimal number.
> >
> > In your example:
> >
> > (jd("02/18/2002") - jd("02/29/1988")) / 365.2
> > =(2452323.5 - 2447220.5)/365.25
> > =5103 /365.25
> > =13.9712525667351 years
> >
> > If anyone is interested in the code to do this, let me know and I'll
post
> > it.
> >
> >
> > Bobby
> >
> > -----Original Message-----
> > From: accessd-bounces at databaseadvisors.com
> > [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Gustav Brock
> > Sent: Friday, August 01, 2003 1:49 PM
> > To: Access Developers discussion and problem solving
> > Subject: Re: [AccessD] Age calculation function
> >
> >
> > Hi Mark
> >
> > >   Are you saying 14 and 31 are correct or incorrect?  I would think
they
> > are
> > > correct.  If so, using DateDiff with "m" and dividing by 12 will work.
> I
> > > think you're saying those values are correct, but if not, I'm
confused.
> >
> > No no, I say those values are correct.
> > But I don't quite understand the month-thing ... it will fail in about
> > 50% of any calculation as it doesn't take the day into account:
> >
> >   #02/29/1988#, #02/18/2002#
> >   should return 13, not 14.
> >
> > I've heard of a couple celebrating their 25 year wedding day 24 years
> > after their wedding because the wife couldn't count to 25. That is
> > just fun - they can celebrate it once again at the real date - but for
> > business applications dealing with pensions, salaries, holidays etc.
> > getting the wrong age or employment period is mandatory and you have
> > to use reliable calculation methods.
> >
> > /gustav
> >
> >
> > >> You may wish to look up "Age Calc" in the archives around Okt. 2002.
> > >>
> > >> Many of the "smart" suggestions will fail for date intervals like:
> > >>
> > >>   #03/01/1988#, #03/01/2002#
> > >>   is 14
> > >>
> > >>   #03/01/1968#, #02/28/2000#
> > >>   is 31
> >
> > _______________________________________________
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> > _______________________________________________
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> >
> >
>
>
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>
>




More information about the AccessD mailing list