Working out someone’s age sounds like subtraction until you try to express it as years, months and days. Then you hit the awkward question: how many days is a month? And the answer, unhelpfully, is “it depends which month.”
Here is how age is actually calculated, why dividing by 365 goes wrong, and the two edge cases that produce genuine disagreements.
The method that works
Age is not computed by dividing days. It is computed by comparing calendar components in order, borrowing where needed — the same way you subtract multi-digit numbers by hand.
Born 14 September 1991, today 3 March 2026:
- Years: 2026 − 1991 = 34
- Months: 3 − 9 = −6. Negative, so borrow a year: 34 − 1 = 33 years, and 3 + 12 − 9 = 6 months
- Days: 3 − 14 = −11. Negative, so borrow a month: 6 − 1 = 5 months. Add the length of the preceding month (February 2026, 28 days): 3 + 28 − 14 = 17 days
Result: 33 years, 5 months, 17 days.
The crucial detail in step 3 is which month you borrow from. You take the length of the month before the current one — not 30, not an average. Getting this wrong is why hand calculations and software often disagree by a day or two.
Our age calculator does exactly this, and also gives total days, weeks and hours plus the date of the next birthday.
Why dividing by 365 is wrong
The shortcut everyone reaches for: count total days, divide by 365.
It drifts. A year averages 365.2425 days, so the approximation loses roughly a day every four years. Over a 40-year span you are out by about ten days — enough to report the wrong age entirely in the week around a birthday.
Dividing by 365.25 is closer but still wrong, because it assumes every fourth year is a leap year and ignores the century rule.
This is not academic. Age thresholds decide insurance premiums, pension eligibility, medical dosing and legal capacity. “Roughly right” is not a standard any of those accept.
Leap years, properly
- Divisible by 4 → leap year
- Unless divisible by 100 → not a leap year
- Unless also divisible by 400 → leap year after all
1900 was not a leap year. 2000 was. 2100 will not be.
Most people alive today have only lived through the 2000 exception, which behaved like the simple rule — which is precisely why so much software has the century rule wrong and nobody has noticed yet.
Born on 29 February
The genuinely contested case. In a non-leap year, does a leapling turn a year older on 28 February or 1 March?
There is no universal answer, and jurisdictions differ:
- England and Wales — legally 1 March for purposes such as reaching majority.
- Most of the US — 1 March in practice, though it varies by state statute.
- New Zealand and Taiwan — 28 February.
- Most software — 28 February, because it clamps to the last valid day of the month.
So a calculator saying 28 February is not wrong; it is applying the most common convention. For anything legal, check the rule that applies where you are rather than trusting any tool.
The end-of-month problem
Born 31 January. What is the date one month later?
There is no 31 February, so implementations clamp to 28 or 29. That makes month arithmetic non-reversible: 31 January plus one month is 28 February, but 28 February minus one month is 28 January, not 31.
For ages this rarely matters, because you compare against a fixed birth date rather than stepping month by month. For subscription billing and contract dates it matters a great deal, and it is the source of a surprising number of billing disputes.
In a spreadsheet
=DATEDIF(A2, TODAY(), "y") completed years
=DATEDIF(A2, TODAY(), "ym") months since last birthday
=DATEDIF(A2, TODAY(), "md") days since last month-anniversary
Combined into one cell:
=DATEDIF(A2,TODAY(),"y")&" years, "&DATEDIF(A2,TODAY(),"ym")&" months, "&DATEDIF(A2,TODAY(),"md")&" days"
DATEDIF does not appear in Excel’s formula autocomplete and never has — it is an undocumented holdover from Lotus 1-2-3 that Microsoft has quietly kept working for thirty years. Type it in full and it works.
The birth date must come first. Reverse the arguments and it returns #NUM! rather than a negative age.
Age in other contexts
- Insurance — many insurers use “age next birthday” rather than current age. Check which before comparing quotes.
- Medical — infants are recorded in weeks or months, and dosing frequently depends on weight rather than age.
- East Asian age reckoning — traditionally counts from 1 at birth and increments at new year, making someone up to two years “older” than their international age. South Korea moved to international age in law in 2023, but the traditional count persists socially.
- Pets — “dog years” multipliers are marketing. Ageing curves differ enormously by breed and size.
For counting the plain number of days between two dates rather than an age, the days between dates calculator is the simpler tool — including an option for working days only.
Doing this for a spreadsheet of people? Here is how to calculate age in Excel.
Join the discussion