Improve company productivity with a Business Account.Sign Up

x
?
Solved

Age Calculation including Leap Year

Posted on 2008-10-08
13
Medium Priority
?
940 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
  • 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 53

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
Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

 
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 53

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 53

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 53

Accepted Solution

by:
Gustav Brock earned 2000 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: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

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

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.

Join & Write a Comment

What to do if a split doesn't fit? Or a bunch of invoice lines must be rounded while the sum must match a total? It takes a little, but - when done - it is extremely easy to implement.
Usually, rounding is performed by some power of 10 - to thousands, hundreds, tens, or integer - or to one, two, or more decimals. But rounding can also be done to a power of two, say, 16 or 64, or 1/32 or 1/1024, even for extreme values.
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.
With Microsoft Access, learn how to start a database in different ways and produce different start-up actions allowing you to use a single database to perform multiple tasks. Specify a start-up form through options: Specify an Autoexec macro: Us…

595 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