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.
>Can anyone tell me the reason why it is possible to calculate ages or
>birthdates using the constant 8870?
>"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