Formula to Compute One's Exact Age
Date: 05/31/2000 at 11:39:32 From: Orlando Haddock Subject: Formula/Equations Is there an equation to find a person's exact age on a given date (taking into account leap years and all)? I guess you need to set up some sort of equation like N = d + m + y where d = the day of the month, m = the month of the year, and y = the year. I tried some of the answers you have given to similar questions, but have not been able to get the right result. Please help me or point me in the right direction. Thank you so much for your time and assistance. Orlando
Date: 05/31/2000 at 13:55:51 From: Doctor Rob Subject: Re: Formula/Equations Thanks for writing to Ask Dr. Math, Orlando. Yes, one's exact age in days can be computed based on the date of birth and the current date. We can assume that both dates are given in the Gregorian calendar, that in common usage today. Let [x] denote the greatest integer less than or equal to x. (In other words, [x] is the integer left when you round x down, or truncate the fractional part.) The number of leap years after 1600 and on or before the year N is given by the number of ordinary leap years [(N-1600)/4] = [N/4] - 400, less the number of centurial years [(N-1600)/100] = [N/100] - 16, plus the number of centurial leap years [(N-1600)/400] = [N/400] - 4, or: T = [N/4] - [N/100] + [N/400] - 388 If we write the year N = 100*C + D, where 0 <= D < 100, then this takes the form: T = 24*C + [C/4] + [D/4] - 388 Since on leap year the extra day is added at the end of February, we will consider the years to begin on March 1, and consider March to be the first month of year N, December the 10th month of year N, and the following January and February the 11th and 12th months of year N (although the calendar tells us they are in year N+1). Now the number of days from March 1, 1600 to March 1 of the year 100*C + D is given by: 365*(100*(C-16)+D) + T There remains the adjustment for the day and month to be made. If the number of the month using the above scheme is M, then we need to add 30*(M-1) + [(3*M-1)/5] to find the number of days from March 1 to the first of the month with number M. Then to get from the first of the month to the current date X, add X-1. Thus the number of days from March 1, 1600 to day X of month M of year 100*C + D is given by: Z = 365*(100*(C-16)+D) + 24*C + [C/4] + [D/4] + 30*M + [(3*M-1)/5] + X - 419 Trying this with April 3, 1601: C = 16, D = 1, M = 2, and X = 3, so Z = 365*(100*(16-16)+1) + 24*16 + [16/4] + [1/4] + 30*2 + [(3*2-1)/5] + 3 - 419 = 365 + 0 + 4 + 384 + 60 + 1 + 3 - 419 = 398 days = 365 + 31 + 2 days which checks. Now compute the Z values for one's date of birth and for the current date, and subtract one from the other. That will give you one's age in days. For example, if one were born October 9, 1975, the Z value for that day is Z = 137,187. Today is May 31, 2000, and its Z value is Z = 146,188. The difference is 9001 days, the exact age of this person. Now converting the age in days to an age in years, months, and days is a little bit trickier, and an ambiguity of as much as two days can occur. - Doctor Rob, The Math Forum http://mathforum.org/dr.math/
Search the Dr. Math Library:
Ask Dr. MathTM
© 1994- The Math Forum at NCTM. All rights reserved.