Age Calculator
Turn a date of birth into an exact age in years, months and days, plus totals in days, weeks, hours and minutes, the weekday you were born and a countdown to your next birthday.
How it works
Two dates drive everything. Date of birth is the only required one, and age as of is the date you want the age measured against. Left empty it means today, read from your device clock the moment the page loads; fill it in and you can find out how old someone was on a past date, or will be on a future one, which is useful for forms with a cut-off date, for marking a milestone, or for working out an age at a specific event.
The headline age is a calendar difference, not a division. Starting at the date of birth, the tool adds whole years while they still fit inside the comparison date, then whole months, and finally counts the remaining days one by one. That is the borrowing a person does when they say "thirty-five years, four months and fifteen days". When a month is shorter than the day number you were born on, the step is clamped to the end of that month, so 31 January plus one month is 28 February in an ordinary year and 29 February in a leap year.
The totals come from a separate calculation: the exact number of milliseconds between the two dates, converted to days, weeks, hours and minutes. A birth date is treated as the very start of that day, so the figures represent complete elapsed time rather than a rounded guess. This is why the totals tile and the years/months/days tile can only ever agree to within a day or so — they answer different questions. The weekday you were born comes from the browser's own calendar, and the countdown to your next birthday simply finds the next occurrence of your birth month and day and measures the distance to it.
No date library is loaded and no network request is made. Plain Date arithmetic builds
each date with new Date(y, m, d) so everything stays on your local calendar, and no
date string is ever handed to Date.parse, which would risk an off-by-one from UTC
interpretation.
The leap-day case, and what "correct" means here
Someone born on 29 February has no birthday in three years out of four, and different places resolve that differently. Most legal systems that have addressed it treat the anniversary as falling on 1 March in an ordinary year, which is also the day that is exactly one calendar year after the birth date; a minority, and many everyday usages, prefer 28 February as the last day of the birth month. This page follows the 1 March convention for the countdown and says so explicitly when it applies. The leap-day tile tells you plainly whether the date of birth is 29 February, and the detailed line names the date and weekday of the next birthday so there is never any doubt about which day was used.
Two smaller limits are worth stating plainly. Ages before the Gregorian calendar was adopted, and dates far in the past or future, rely on the browser's proleptic Gregorian implementation, which can differ from historical records by the days that were skipped at the reform. And a birth date is treated as midnight, so a person born at 23:50 and someone born at 00:10 the same day are the same age here — the tool has no time of birth to work with.
This page is not a legal, medical or administrative authority. Eligibility ages, pension and benefit cut-offs, school entry dates and clinical age are defined by specific rules, often pinned to a national time zone or a fixed annual cut-off rather than to the exact birthday. Treat the figure here as a quick check and confirm anything official with the body that sets the rule.
How to use it
- Enter the date of birth in the first field. The figures appear immediately and recalculate as you change any field — there is no button to press.
- Leave age as of empty to measure against today, or type a date to measure against that day instead. Use today refills it, Clear the as-of date puts it back to today's live clock.
- Read the headline sentence first: it states the age in years, months and days and names the date it was measured on. The tiles underneath break the same interval into totals.
- Check the tiles that answer the questions people usually actually have — the weekday of birth for a bit of trivia, the next birthday and the number of days until it for planning, and the leap-day note if the birth date is 29 February.
- Press Copy result to put a plain-text summary on your clipboard: the age, the measurement date, the weekday of birth, the next birthday and the total days. It is handy for pasting into a form, an email or a note. If your browser blocks clipboard access, the button says so and you can select the text on screen instead.
For a birthday countdown that stays accurate, leave the as-of field empty. The page reads your device clock once when it loads, so reopening or refreshing it tomorrow gives the countdown as of tomorrow rather than a stale figure.
Frequently asked questions
How is my age in years, months and days calculated?
By walking the calendar, not by dividing the number of days lived. The tool adds whole years to your date of birth while they still fit inside the comparison date, then whole months, and finally counts the leftover days one at a time. If you were born on 3 March 1990 and today is 18 July 2025, one year takes you to 3 March 2025, four months take you to 3 July 2025, and fifteen more days land on 18 July — so your age is 35 years, 4 months and 15 days. Months are clamped when the target month is shorter: someone born on 31 January is one month old on 28 February.
What happens if I was born on 29 February?
You are still one year older on 1 March in an ordinary year, because that is the day the anniversary legally falls on in most countries that have ruled on it, and the tool counts that way. The tile that reports whether your birth date is a leap day tells you explicitly, and when the next birthday actually falls on 29 February it says so. If you prefer to treat 28 February as your birthday, subtract one from the days-until figure on the 28th; on every other day of a non-leap year the difference is one day either way until you reach 1 March.
Why might my age differ from another calculator by a day?
Almost always because of what “today” means. This page reads the clock of the device you are using and interprets both dates in that device's local time zone, so the answer changes at your local midnight rather than at midnight UTC — which can be up to fourteen hours earlier or later. A site running on a server in California, or one that compares UTC dates, can therefore disagree with this page for part of the day, especially if you are far from UTC. Refresh well after midnight if a figure looks stale, and if the date you typed is today, remember that no time is stored: a birth date is treated as the start of that day.
Can I use this for a legal, medical or official age?
No. It is a convenience calculator, not an authority. Retirement ages, pension eligibility, school admission cut-offs, minimum ages for driving, consent or employment, and clinical age used for dosing or screening are all defined against a specific clock, often the national time zone and sometimes a specific cut-off date rather than the exact birthday. Where an exact age matters, take this figure as a sanity check and confirm it against the wording of the rule that applies and the time zone it names, or with the issuing institution.
Sources & further reading
- MDN Web Docs — Date — The reference for the local-time date construction and millisecond arithmetic used here, including why new Date(y, m, d) is preferred to parsing a date string.
- IANA time zone database (tz database) — The authoritative list of time zone offsets and daylight-saving rules, which is why an age can differ by a day depending on the clock and zone the calculation runs in.
- Wikipedia — ISO 8601 — Documents the YYYY-MM-DD date format used by the date fields as well as the ISO duration and calendar conventions this page follows.