Solved

Age Calculation including Leap Year

Posted on 2008-10-08
13
915 Views
Last Modified: 2012-05-05
Hi Experts

I need to calculate the difference in days between the fields below. This needs to include a extra day if there is Leap Year.

Start Date       End Date
12/01/2007     10/31/2008 = 0.9171 (No leap year considered)

Thanks.
0
Comment
Question by:Sariff
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 4
  • 3
13 Comments
 

Author Comment

by:Sariff
ID: 22671548
Start Date       End Date
12/01/2007     10/31/2008 /365.25 = 0.9171 (No leap year considered)

0
 
LVL 75
ID: 22671558
0
 
LVL 50

Expert Comment

by:Gustav Brock
ID: 22672232
> .. the difference in days between the fields ..

intDiffDays = DateDiff("d", [Start Date], [End Date])

leap year or not.

> 0.9171

That looks more like a partial year.
So what are you looking for?

/gustav


0
Revamp Your Training Process

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action.

 
LVL 75
ID: 22672303
I forgot to mention to look for Gustav's solutions in the links I posted :-)

mx
0
 

Author Comment

by:Sariff
ID: 22672827
Im checking into them...I will post back soon. Thanks
0
 

Author Comment

by:Sariff
ID: 22675669
The "days" difference for the example above is 335 (non leap year), 336 I need the formula to calc correctly for a Leap Year as well as non leap year.
Below is the calc I am using:
 DateDiff("d",[LastBirthday],[LASTDAY_OF_MONTH]+1)/365

How can this be setup to know when it is a leap year and when not?
0
 
LVL 75
ID: 22675727
gustav is your guy for any date / time type calculation.  In the one link, is Function covers every case known to Man.

mx
0
 
LVL 50

Expert Comment

by:Gustav Brock
ID: 22676156
Thanks Joe. Haven't thought about this way but it may be true.

But there is more. How about this, the 3-3-System (r), which may be new to you, invented by a Swede, Sune Nygren:

  http://www.tretre.se/korteng.shtml

Notice the calendars which are "imune" to leap years:

  http://www.tretre.se/standard.shtml

By the way, it was me who persuaded him to define a start date which he set to 1998-04-06.

/gustav
0
 

Author Comment

by:Sariff
ID: 22677359
Thanks for the information. I am hoping for something I can run in SQL as the result will dump to an Excel doc...
0
 
LVL 50

Expert Comment

by:Gustav Brock
ID: 22678224
If it is in Access, it can be "dumped" to Excel, SQL or not.

Isn't it about time you try to tell us what you are trying to achieve?

/gustav
0
 

Author Comment

by:Sariff
ID: 22678395
gustav

I am trying to calculate the Age of an employee to the exact day in years and the lapsed days since his/her last birthday.

0
 

Author Comment

by:Sariff
ID: 22678448
I have the Age in years done, but the Leap year causes a problem with calculating the lapsed days
0
 
LVL 50

Accepted Solution

by:
Gustav Brock earned 500 total points
ID: 22679303
That could be counting the days from the last birthday. Leap years will have no impact as a day is a day. Thus, for some years you may get x years and 365 days just before the birthday:

datDob = <some birthday>
intAgeYears = Age(datDob)
intAgeDays = DateDiff("d", DateAdd("yyyy", intAgeYears, datDob), Date)

strAgeYearsDays = CStr(intAgeYears) & " years, " & CStr(intAgeDays) & " days"

/gustav
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

As tax season makes its return, so does the increase in cyber crime and tax refund phishing that comes with it
In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

734 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question