Why your age is not just one date minus another
Subtracting two years gives you a number that is right about half the time. Born in 1990, and the year is 2026, so the age is 36 — unless the birthday has not come round yet, in which case it is 35.
That is the first of two genuine difficulties in age arithmetic. The second is worse, and it has no clean answer at all.
The method, in the order it actually runs
Age in years and months is built by comparing the three parts of each date separately, then borrowing where a part comes out negative — exactly like subtracting on paper in columns.
- Subtract the years:
years = this year − birth year. - Subtract the months:
months = this month − birth month. - If today's day-of-month is earlier than the birth day-of-month, this month is not complete yet, so take one off the month count.
- If the month count is now negative, borrow a year: add 12 to the months and take one off the years.
Steps 3 and 4 are the whole difference between a real age and a subtraction of years.
Worked, both ways round
Take a birth date of 15 June 1990.
- As of 14 June 2026, the day 14 is before the day 15, so the current month does not count: the result is 35 years 11 months.
- As of 15 June 2026, the birthday has landed: 36 years 0 months.
- As of 27 August 2026: 36 years 2 months, and
13,222days lived in total.
Now move the birthday later in the year. Born 3 November 1990, as of 27 August 2026: the month subtraction gives 8 − 11 = −3, so a year is borrowed — 35 years 9 months. Same birth year, same "today", a different answer by a whole year.
The part with no correct answer
What is one month after 31 January?
There is no 31 February, so something has to give, and every option is defensible.
- Clamp to the end of the month: 28 February in an ordinary year, 29 February in a leap year.
- Keep the day number and let it spill: 3 March in an ordinary year, since
31 January + 31 days = 3 Marchin 2026. - Add a fixed 30 days: a different date again.
Checked: 31 January 2024 plus 29 days is 29 February 2024. 31 January 2026 plus 28 days is 28 February 2026, and plus 31 days is 3 March 2026. Those are three different notions of "a month later" and they land up to three days apart.
This is why month-based arithmetic is a convention, not a fact. Whenever a month step matters, say which rule you are using.
The leap-day birthday
Somebody born on 29 February 2004 has a birth day-of-month of 29, and most years do not have one.
Under the column method above, the comparison is made against day 29 regardless. As of 28 February 2026 the day 28 is earlier than 29, so the month does not count yet: 21 years 11 months. As of 1 March 2026: 22 years 0 months. One day apart, a year of the count apart.
So the calculation treats 1 March as the rollover in a non-leap year. That is a convention too. It is the arithmetic falling out of the rule, not a claim about what anybody's paperwork says.
Days are the unambiguous part
Years and months carry all this baggage. A plain count of days does not. From 29 February 2004 to 1 March 2026 is 8,036 days, and there is nothing to argue about — leap days are simply included, because they were days.
If you need a figure that cannot be disputed, quote days.
What the tool does
The free Age Calculator takes a birth date and an "as of" date and returns whole years and months by exactly the method above, dropping the current month when the day has not been reached, plus the total number of days lived on an exact calendar with leap days counted.
The "as of" date is a field you fill in rather than a clock it reads, which means you can age somebody at a future or past point — what will this be on the day of the appointment — and get the same answer every time you run it. It runs on your device and keeps nothing.