Here's the story: Suppose we want to calculate the age at death for
a person who died Y2|M2|D2, i.e., in year Y2, in month M2, on day D2,
and who was born Y1|M1|D1. Now if Y2 >= Y1 and M2 >= M1 and D2 >= D1
we can simply subtract each of these separately and get the age at death
as (Y2-Y1)|(M2-M1)|(D2-D1). If D2 < D1 and M2 < M1 however, we would first
take 1 from M2 and add 30 (assuming all months have 30 days!) to D2,
then take 1 from Y2 and add 12 to M2 before proceeding, i.e., Y2|M2|D2
is equivalent to (Y2-1)|(M2+11)|(D2+30)
Now when we string together the year-month-day into one big number what
we are doing is adding together 10000*Y2 + 100*M2 + D2 to get that number.
So to insure that we can subtract the months and days if M2 < M1 and D2 < D1
we have the equivalent 10000*(Y2-1) + 100*(M2+11) + (D2+30) which equals
10000*Y2 + 100*M2 + D2 - (10000 - 1100 - 30). The last quantity in
parens is just 8870.
I hope the above is clear (and that you will use the 8870 method only as
a guide, and tweak the final answer to get the right day count.) The correct
method is as follows: To get the age at death, first subtract the years,
then the months (borrowing 1 from the year and adding 12 to the month if
necessary), then the days (borrowing 1 from the month and adding the number
of days in the _previous_ month if necessary.) To reverse the procedure
and determine the DOB from the age and DOD, first subtract the days, then
the months, then the years.
Regards,
Charles Sullivan
You wrote:
>Hi all,
>Can anyone tell me the reason why it is possible to calculate ages or
>birthdates using the constant 8870?
>Example:
>"She died on March 25, 1899, aged 70 years, 6 months, 29 days".
>Here's how it works:
>Write the death date as 18990325.
>Subtract 8870, giving 18981455.
>Subtract the age, written as 700629.
>The answer is 18280826, so she was born in 1828, in August, on the 26th.
>It works great, but why?
>...Look forward to hearing from you
>...Jim Nicholls
>
>
>