Age calculator — exact age in years, months and days
Enter a date of birth and get the age the way people actually say it: years, months and days on the real calendar. The same span is also given as total months, weeks, days, hours and minutes, alongside the next birthday, the weekday it falls on, and the weekday you were born on. Change the "as of" date to ask how old someone will be on any date you like.
- Nothing you enter is uploaded or saved
- Works offline
Enter a date of birth. The as-of date starts on today, so one field is enough — change it to ask how old someone will be, or was, on any other date.
Enter a date of birth to see the result.
How it works
- 1
Enter the date of birth
One field, and the answer appears as you finish typing it — there is no Calculate button. Nothing else is required, because the second field already holds today. A date of birth that has not happened yet is rejected with a plain sentence rather than a negative age, which is what most calculators print when they are asked the same question by mistake.
- 2
Change the "as of" date if you are not asking about today
This is the field that turns an age calculator into something more useful. Set it to a date in the future to answer "how old will I be on 1 January 2030", to a retirement date, to a school cut-off, or to the date on a form you are filling in. Set it to a date in the past to work out how old somebody was when something happened. The Today button puts it back.
- 3
Read the calendar age first, then the totals
The large figure is the calendar age — whole years, then whole months, then leftover days. Below it the same span appears as total months, total weeks, total days, total hours and total minutes. Those five are conversions of one day count, so they always agree with each other; the calendar age is worked out separately, by walking real months, which is why it cannot be reconstructed from any of them.
- 4
Check the next birthday and the turning-age dates
The next birthday panel gives the date, the weekday it lands on and how many days away it is, along with the age being reached. Underneath, a short table shows the date of a handful of ages people commonly look up, and a field lets you ask for any age at all — useful for working out the exact date somebody reaches a milestone rather than counting months on your fingers.
Where month-end arithmetic goes wrong
A month is not a fixed length, so "one month later" has to be defined rather than calculated. These five spans are the ones that separate a correct implementation from a plausible one, and every answer below is produced by the same code that runs the calculator above — not typed in.
| From | To | Age | Why it is the answer |
|---|---|---|---|
| 31 January 2000 | 1 March 2000 | 1 month, 1 day | The classic borrow. February 2000 had 29 days, the month completed on the 29th, and one day is left over. |
| 31 January 1999 | 1 March 1999 | 1 month, 1 day | The same dates a year earlier. February was 28 days long, so the month completed a day earlier — and the leftover is still one day. |
| 31 January 2000 | 28 February 2000 | 28 days | One day short of a whole month, so no month is counted at all. Naive code reports one month here. |
| 29 February 2004 | 28 February 2025 | 21 years | A 29 February birth, on the date this tool treats as the birthday in a common year: exactly 21 years, nothing left over. |
| 29 February 2004 | 1 March 2025 | 21 years, 1 day | One day later. The leftover day appears; the year count does not jump. |
Frequently asked questions
Why is the age in years, months and days not just the total days divided by 365.25?
Because 365.25 is an average, and an age is a count. There is no such thing as a year of 365.25 days or a month of 30.44 days — real years are 365 or 366 days and real months are 28, 29, 30 or 31, and which ones you crossed depends entirely on where in the calendar you started. Dividing gives an answer that is close but almost never exact, and the error is not evenly spread: it is largest for people born in the first three months of the year and smallest in the last. This calculator walks the real months instead. It counts how many whole months fit between the two dates, splits those into years and months, and reports whatever days are left over. That is the number that matches what a person would get by counting on a calendar, which is the only number worth printing.
How does the month-end borrow work — and why is 31 January to 1 March one month and one day?
Because the month that started on 31 January finished on the last day of February, not on 31 February, which does not exist. Working it through: the raw month difference between January and March is two, so the calculator first tries 31 January plus two months. That lands on 31 March, which is past the target, so the second month never completed and it is dropped. It then tries one month: 31 January plus one month clamps to the end of February — 29 February in 2000, 28 February in 1999 — and that is on or before the target. So one whole month has passed, and the days left over are counted from there: exactly one day. The answer is 1 month and 1 day in both a leap year and a common year, even though February had a different length. Testing the anchor against the target like this is the only way to get both the leap and the common case right; implementations that skip the test report 31 January to 28 February as one month, which would mean a month passed with a day still missing from it.
When does someone born on 29 February have a birthday in a normal year?
On 28 February, in this tool. That is a choice, not a fact — different jurisdictions have settled on different answers, some taking 28 February and some 1 March, and there is no convention that is correct everywhere. What matters is that a calculator picks one, applies it everywhere, and says which. The reason for 28 February here is internal consistency. The whole page is built on the end-of-month clamp described above, and under that rule 29 February 2004 plus 252 months is 28 February 2025 — so the years-months-days figure already reports exactly 21 years on 28 February 2025, with nothing left over. If the next-birthday panel said 1 March, the same screen would show "21 years, 0 months, 0 days" and "next birthday tomorrow, turning 21" at the same time. One rule governs both, so the page cannot disagree with itself. If you need the other convention for a legal or administrative purpose, put 1 March into the "as of" field and read the figures there.
Why do official forms ask for completed years only?
Because eligibility rules are almost always written as thresholds — a minimum age, a maximum age, a band — and a threshold needs a single whole number to compare against. Someone who is 17 years and 11 months is 17 for that purpose, not "nearly 18", and the months are not a tie-breaker. Completed years is the first number this calculator shows, and it is the same number a form means when it asks for age. It also explains why the age changes on the birthday and not before it: the year completes on the anniversary, so the day before a birthday is still the previous age, no matter how close it is. When you need to know the exact date a threshold is crossed rather than whether it has been, use the turning-age table further down the page.
What happens if the date of birth is in the future, or the "as of" date is before it?
The calculator says so in a sentence and stops, rather than printing a negative age. This is a real case rather than a defensive one: it happens whenever a year is mistyped, whenever a two-digit year is entered and lands in the wrong century, and whenever the two dates are filled in the wrong order. Calculators that carry on produce output like "-3 years, -2 months" or, worse, a plausible-looking positive number obtained by taking an absolute value somewhere — which quietly answers a different question from the one asked. When the dates are the wrong way round here, the message also tells you how many days it is until the date of birth, which is enough to see immediately whether it was a typo or a due date.
Are the hours and minutes exact?
They are exact conversions of the day count — calendar days multiplied by 24 and by 1,440 — and that is what people mean when they ask how many hours old they are. Two things they are not. First, no time of birth is asked for, so the figures are measured between dates rather than between moments; if you were born in the evening, the true elapsed hours are lower than shown by however many hours passed before you were born. Second, they are not wall-clock hours across a daylight saving change. In places that shift their clocks, two days of the year are 23 and 25 hours long, so a span crossing one of them contains slightly more or fewer actual hours than days × 24. Nothing in this tool stores a clock, which is exactly why the dates themselves are always right — but it does mean the hours figure is a calendar conversion, not a stopwatch reading.
Does it handle leap years, and how far back can it go?
Yes, including the century rule that most people forget. A year is a leap year if it divides by 4, except century years, which must divide by 400 — so 2000 was a leap year and 1900 was not, and 2100 will not be. All the arithmetic runs on the real Gregorian calendar rather than on an average year length, so every February the span crosses is counted at its true length. The range is year 1 to year 9999, using the proleptic Gregorian calendar, which is the modern calendar projected backwards. One caveat for anyone working with historical records: countries adopted the Gregorian calendar at different times between 1582 and 1923, so for a birth date before their local switch the arithmetic here is correct but may not match a date written in a contemporary document.
Is my date of birth uploaded or saved anywhere?
No. Nothing you type is uploaded or saved. The whole calculator is JavaScript running in this tab, with no server involved at any point, so it also works with the connection off. It deliberately writes nothing to your browser storage either — some tools on this site save drafts because losing a half-finished invoice hurts, but a date of birth is personal information and the answer takes one sitting, so there is nothing worth keeping and a reason not to keep it. Close the tab and it is gone. Like every other page here, the page itself carries advertising, which loads from Google and is explained on the privacy page.