What “age” means as a number
An age is a duration expressed in calendar units rather than in days, and that translation is where all the difficulty lives. Months are 28, 29, 30 or 31 days long, years are 365 or 366, and the answer to “how old is this person” therefore depends on which convention you adopt for borrowing across unequal months. Two correct implementations can disagree by a day.
What this page does is the conventional civil answer: a whole-number year count, plus leftover calendar months, plus leftover days, alongside two absolute totals that involve no convention at all. The absolute totals are the ones to quote when the exact duration matters; the years-and-months form is the one to quote in conversation.
The method
Given a date of birth and a reference date, the tool works in four steps.
- Calendar subtraction. Subtract the birth year and month from the reference year and month, then place the cursor that many months after the birth date, keeping the day of the month and clamping it to the target month's length — 31 January plus one month is 28 February, not 3 March.
- Walk the cursor back. If it lands later than the reference date, drop a month at a time and recompute until it does not. One subtraction is not enough when the birth day-of-month does not exist in the target month, which is what leaves a negative day component.
- Normalise the month count. If the months are negative, take one off the year count and add twelve to the months.
- Remainder and totals. The leftover days are the gap between the cursor and the reference date. Separately, count elapsed whole days between the two dates, then divide by seven and round down for complete weeks.
Both day figures are civil-date differences: the dates are compared as calendar dates rather than as local timestamps, so a 23-hour or 25-hour daylight-saving day inside the interval cannot shift a total by one and the answer does not depend on the viewer's timezone. The Date Difference page uses the same arithmetic.
The next-birthday figure is computed by taking this year's anniversary of the birth date, moving it forward a year if it has already passed, and counting the civil days remaining. A date of birth later than the reference date is rejected rather than returning a negative age.
A worked example you can reproduce
Born 1 January 2000, viewed on 13 September 2026:
- Years: 2026 − 2000 = 26. Months: 8 − 0 = 8. Days: 13 − 1 = 12. Nothing is negative, so no borrowing is needed.
- The age is therefore 26 years, 8 months, 12 days.
- Elapsed days: 26 years including seven leap days is 26 × 365 + 7 = 9,497, plus the 255 days from 1 January to 13 September = 9,752 days.
- Complete weeks: 9,752 ÷ 7 = 1,393 with one day remaining.
- The 2026 anniversary has already passed, so the next birthday is 1 January 2027, which is 110 days away.
A case that exercises the borrowing rule: born 20 May 2000, viewed on 10 March 2026. The day difference is 10 − 20 = −10, so the month count drops from −2 to −3 and the day count gains the 28 days of February, becoming 18. The month count is then still negative, so a year is borrowed and twelve months added, giving 25 years, 9 months, 18 days and a total of 9,425 days. Reading it forwards confirms the borrowing: 25 years and 9 months after 20 May 2000 is 20 February 2026, and 18 more days is 10 March.
Where age calculations go wrong
- Days are counted by dividing milliseconds. A day total taken from local timestamps divides milliseconds, and in a timezone with daylight saving one day in the interval is 23 hours and another may be 25, so a raw division can land just short of a whole number and lose a day — the count then shifts with the viewer's timezone. This page compares civil dates instead, so its totals hold wherever it is opened; it is a calculator that subtracts local instants which needs checking.
- Leap-day birthdays roll forward. Someone born on 29 February has no anniversary in three years out of four. The tool builds the anniversary with the same month and day, and JavaScript resolves an invalid 29 February in a non-leap year to 1 March, so the next-birthday count treats 1 March as the date. Legally, jurisdictions differ on whether the birthday is 28 February or 1 March, and this page takes no position.
- The years-and-months form is convention-dependent. The day of the month is clamped to the target month's length when that month is short — 31 January plus one month is 28 February — and the cursor walks back a month at a time until it stops overshooting. A calculator borrowing across a different month, or working in 30-day months, will report a different breakdown for the same pair of dates while agreeing on the absolutes.
- Calendar age is not physiological age. Two people born a year apart may differ more in fitness than two born a decade apart. Chronological age is an administrative fact; it is not a measure of health, development or capability.
- Age in whole years discards most of the information. Someone who turned 26 yesterday and someone about to turn 27 are both “26”, though they are 364 days apart. For children, in particular, age is normally recorded in months precisely because a year is too coarse a unit.
- Special cases are not modelled. Corrected age for premature infants, gestational age, and the age-in-years conventions used by different legal systems for birthdays on the 29th are all outside what a simple date subtraction can express.
- The reference date defaults to today and follows your device's clock and timezone. A device set to the wrong date silently produces a wrong age, and the result changes at local midnight.
Questions people ask
How do I count the days I have been alive exactly?
Use the total-days figure rather than multiplying years by 365. The total is computed from the two dates directly, so it already accounts for every leap day in between.
Why is my age one day more than another calculator says?
Almost certainly the month-borrowing convention, or a daylight-saving boundary. Compare the total day counts first; if those agree, the difference is purely in how the remainder was expressed.
What if I was born on 29 February?
Enter 29 February and the page will count 1 March as the anniversary in non-leap years. If you need the 28 February convention for a specific purpose, subtract a day from the reference date to see the alternative.
Can I use this for a deadline or a project duration?
Only for the elapsed-day figure. The years-and-months breakdown is calibrated for birthdays, and for arbitrary intervals the Date Difference page reports the same arithmetic without the birthday logic attached.
Does the page know my birthday after I enter it?
No. The two dates exist only in the page while it is open, and nothing is transmitted or stored.