Age Calculator

Calculate exact age in years, months and days between a birth date and any date, plus total days, weeks and the countdown to the next birthday.

Defaults to today. Change it to work out an age on any past or future date — a school cut-off, a policy renewal, a milestone anniversary.

Both dates stay in your browser. Nothing you type here is sent anywhere or stored.

Age on the as-of date

Enter a date of birth to see the exact age.

The as-of date is earlier than the date of birth — pick a later as-of date.

Total days
Total weeks
Whole months
Total hours
Born on a
Next birthday

What this age calculator does

This tool works out an exact age in years, months and days between any two dates. Enter a date of birth and an "as of" date — which defaults to today — and it reports the age on that date, along with the total number of days, weeks, whole months and hours that have elapsed, the day of the week the person was born, and how long until the next birthday.

It is not limited to birthdays. The same arithmetic answers "how old is this contract", "how many days until the lease anniversary", or "will this child be five before the school cut-off". Everything runs in your browser: the two dates you type are never transmitted or saved.

How to use it

  • Date of birth — the starting date. Any date from the year 100 onward is accepted.
  • Age as of — the date you want the age measured on. Leave it as today for a current age, or set it to a future date to see how old someone will be, or a past date to see how old they were.

Results update as you type. If the as-of date falls before the date of birth, the tool says so rather than showing a negative or nonsensical age.

How age in years, months and days is calculated

Calendar age is not a simple division. Months contain 28, 29, 30 or 31 days, so the only correct method is to subtract the calendar components and then "borrow" across the boundaries, exactly as you would when subtracting multi-digit numbers by hand:

  1. Subtract the components separately: years = Y2 − Y1, months = M2 − M1, days = D2 − D1.
  2. If the day figure is negative, borrow one month: subtract 1 from months and add the length of the month before the as-of date to days. Borrowing the preceding month's real length — not a fixed 30 — is what makes the answer correct across February and the 31-day months.
  3. If the month figure is then negative, borrow one year: subtract 1 from years and add 12 to months.

The total days figure is computed separately, by taking the difference between the two dates in UTC and dividing by 86,400 seconds. Using UTC matters: it sidesteps daylight-saving transitions, which make some local days 23 or 25 hours long and can otherwise push a total off by one. Total weeks is the whole-week part of that day count, with the remaining days shown alongside.

Leap years and February 29

In the Gregorian calendar a year is a leap year if it is divisible by 4, except for century years, which must also be divisible by 400. So 1900 was not a leap year, 2000 was, and 2100 will not be. This calculator derives every month length from the calendar itself rather than from a lookup table, so leap days are handled automatically — including a birth date of February 29.

For someone born on February 29, the next-birthday figure falls back to February 28 in non-leap years. That is a convention, not a law: different jurisdictions treat a "leaping" birthday as February 28 or March 1 for legal purposes, so check the local rule if the exact date carries legal weight.

Worked example

Take a birth date of 15 March 1990 and an as-of date of 6 August 2026.

  • Years: 2026 − 1990 = 36. Months: 8 − 3 = 5. Days: 6 − 15 = −9.
  • The day figure is negative, so borrow one month. The month before August is July, which has 31 days: months becomes 4, and days becomes −9 + 31 = 22.
  • The month figure is still positive, so no year borrow is needed. The result is 36 years, 4 months, 22 days.
  • Total days: from 15 March 1990 to 6 August 2026 is 13,293 days — that is 1,899 whole weeks exactly.

A note on age reckoning

The years/months/days answer above reflects the Western convention, in which a person is zero years old at birth and gains a year on each birthday. Other systems exist: traditional East Asian age reckoning counted a newborn as one year old and added a year at the lunar new year rather than on the birthday, and some insurance and actuarial tables use "age nearest birthday" instead of "age last birthday". If a number here has to match an official form, confirm which convention that form expects.

References

✏️ Edit this page on GitHub