1. What “exact age” actually means
Age has two honest answers and they are not the same number. Calendar age is the one you say out loud — 34 years, 7 months and 12 days — and it is built by counting whole years first, then whole months, then the days left over. Elapsed age is a single running total: 12,644 days, or 303,456 hours. Both come from the same two dates, and this calculator shows both because forms, doctors and databases each ask for a different one.
The calendar figure is the harder of the two. A year is not a fixed number of days and a
month is not a fixed number of days, so “7 months and 12 days” only has meaning once you fix
which months you are counting. The convention used here — and by spreadsheet
DATEDIF, by the JavaScript Temporal proposal and by every court
that has had to rule on it — is to count forward from the birth date, month by month, taking
the largest whole number of months that still lands on or before the target date, and then
count the remaining days.
2. Why total months and total days disagree
People are often surprised that 12,000 days is not 400 months, and that their age in months does not equal their age in years times twelve plus a bit. Both observations are correct, and both come from the same source: calendar months contain between 28 and 31 days, so any conversion between the two is an approximation unless you count real calendar boundaries.
This tool never approximates. Total days is a straight count of midnight boundaries crossed between the two dates, including every leap day. Total months is a count of completed calendar months, using the same forward-counting rule as the calendar age. Total weeks is total days divided by seven, with the remainder shown separately so nothing is silently rounded away.
The practical consequence: use total days when you need something reproducible and arithmetic — interest, dosing, day-count conventions, database keys. Use the years/months/days figure when a human is going to read it. Do not convert between them with a fixed multiplier and expect the two to agree.
3. Leap years and the 29 February problem
A leap year is any year divisible by four, except centuries, except centuries divisible by 400. So 2000 and 2024 were leap years, 1900 and 2100 are not. That rule is why this calculator counts leap days you have actually lived through rather than estimating them.
The interesting case is someone born on 29 February. In a common year there is no such date, so a decision has to be made about when they gain a year. This calculator uses the 28 February convention: a person born on 29 February 2000 is exactly 26 years old on 28 February 2026, not on 1 March. That matches the day-clamping rule used everywhere else in the tool, so the age display and the “next birthday” countdown can never contradict each other.
Be aware that jurisdictions differ. Several legal systems — including England and Wales for some purposes — treat a leaper as attaining the new age on 1 March. If a legal threshold turns on a 29 February birth date, check the rule that applies to you rather than trusting any calculator, including this one.
4. Reading the totals: days, hours, minutes, seconds
The hours, minutes and seconds figures are derived from whole days, which means they are measured from midnight at the start of your birth date, not from your actual time of birth. That is deliberate. Almost nobody knows their birth time to the minute, and mixing a known date with a guessed time produces a precise-looking number that is wrong by up to a day.
The live seconds counter on this page does tick in real time, so it will drift ahead of the midnight-based total during the day. Treat it as a curiosity rather than a measurement.
- Days — exact, and the figure to use if you need to check anything.
- Weeks — days divided by seven, with the leftover days shown.
- Months — completed calendar months, not days divided by 30.
- Hours and minutes — days multiplied out, from midnight.
5. Timezones, daylight saving and why nothing shifts here
Most age bugs in the wild are timezone bugs. If you build two timestamps from local dates and subtract them, a daylight saving transition in between adds or removes an hour, and dividing by 86,400,000 then rounds the wrong way — producing an age that is one day out for part of the year, or an age that changes when the user travels.
This calculator sidesteps the problem entirely by never using clock time for the arithmetic. Each date is converted to an integer day number in UTC, and every calculation is integer subtraction on those numbers. There is no hour component to lose, so results are identical in every timezone and across every DST boundary. The only place your local clock is consulted is in deciding what “today” is, which is exactly where you want local behaviour.
Everything runs in your browser. The date you type is never sent anywhere, is not logged, and
the page keeps working if you go offline after it loads. You can share a pre-filled link with
?dob=1998-06-15 appended to the URL.
6. Getting the same answer in a spreadsheet or in code
If the calculation has to live somewhere other than this page, the rule to carry across is the one above: count forward from the birth date, and never divide elapsed days by 365 or 365.25 to get years. Every environment below has a function that does the forward count properly, and the same worked example — born 15 June 1998 — should give 28 years, 2 months and 18 days on 2 September 2026 in all of them.
Excel and Google Sheets
=DATEDIF(A1, TODAY(), "y") & " years, " &
DATEDIF(A1, TODAY(), "ym") & " months, " &
DATEDIF(A1, TODAY(), "md") & " days"
=TODAY() - A1 total days lived
=DATEDIF(A1, TODAY(), "m") completed monthsDATEDIF exists in both products for Lotus 1-2-3 compatibility and is still
undocumented in Excel's function list, so it will not autocomplete — type it in full. One real
caveat: the "md" unit is known to misbehave around month ends and can return a
negative number of days. If the day component matters, prefer
YEARFRAC for a fraction, or compute the years and months with DATEDIF
and derive the leftover days from an EDATE anchor.
SQL, Python and JavaScript
-- PostgreSQL: a real interval, not an approximation
SELECT EXTRACT(YEAR FROM age(current_date, dob)) AS years FROM people;
-- MySQL / MariaDB
SELECT TIMESTAMPDIFF(YEAR, dob, CURDATE()) AS years FROM people;
# Python, python-dateutil
from dateutil.relativedelta import relativedelta
rd = relativedelta(date.today(), dob) # rd.years, rd.months, rd.days
// JavaScript, Temporal (Stage 3, shipping in current browsers)
Temporal.PlainDate.from(dob).until(today, { largestUnit: 'year' })The trap all four avoid is the one hand-rolled code falls into: building two timestamps, subtracting, and dividing. That version is wrong by a day for part of every year, wrong again across a daylight saving boundary, and wrong in a different way for anyone born on 29 February.
7. What a birth year alone can tell you
A year with no month or day still fixes a surprising amount, and it also fixes a limit: it gives two possible ages, never one. Anyone born in 1990 turns 36 during 2026 — 35 until their birthday falls, then 36 for the rest of the year. Subtracting the years gives the higher number, which is why so many forms and spreadsheets are out by one for part of the year.
| Cohort | Birth years | Age reached during 2026 | Cluster entry |
|---|---|---|---|
| Silent Generation | 1928–1945 | 81–98 | Born in 1930 |
| Baby Boomer | 1946–1964 | 62–80 | Born in 1946 |
| Gen X | 1965–1980 | 46–61 | Born in 1965 |
| Millennial | 1981–1996 | 30–45 | Born in 1981 |
| Gen Z | 1997–2012 | 14–29 | Born in 1997 |
| Gen Alpha | 2013–2029 (still open) | 0–13 | Born in 2013 |
Those cut-offs are the ones the Pew Research Center uses, which is the closest thing to a standard for the Boomer, X, Millennial and Z labels. Pew has said it will not name the cohort after Gen Z, so the Gen Alpha row is the demographer Mark McCrindle's proposal rather than research consensus, and its start year varies between sources. Treat any cohort label as a convention for comparing survey data, not a property of a person.
What a year fixes beyond the cohort: whether it was a leap year and which year the next one was, the weekday 1 January fell on, the Chinese zodiac animal — with the caveat that the cycle turns at Lunar New Year rather than on 1 January, so a birth in January or early February belongs to the previous animal — and the calendar year each milestone age is reached in, since that is simply the birth year plus the age. Star sign, birthstone and an exact day count all need the month and day, which is what the console at the top of this page is for.
8. Age by birth year, 1930 to 2024
Every year below has its own page: the two possible ages and the exact day range, the calendar year each milestone age is reached, where the year sits inside its generation and which years are either side of it, the leap-year and zodiac facts, and this calculator pre-filled to that year so there is a worked answer before you type anything. 2024 is the newest year that can be answered in whole years — for a child born more recently, the baby age calculator works in days, weeks and completed months instead.
The figures on those pages are computed when the site is built and then re-anchored to your own clock when the page loads, so a page cached last month still shows a correct age today. Nothing about it needs a server: the year is in the URL, the arithmetic is in the browser.
9. Online, as an app, or the one in Google
"Age calculator online", "age calculator app" and "age calculator Google" are three different searches for the same thing, and they have three different honest answers.
Online. This page is the online version and there is nothing to sign up for. It is also worth being clear about what "online" does not mean here: your date of birth is not sent anywhere. The page arrives as a static file, the arithmetic happens in JavaScript on your own device, and no request is made when you type. Being online is how you fetch the calculator, not how it computes.
As an app. There is no app store download, and you do not need one. The site ships a web app manifest, so Add to Home Screen on Android or iOS — or Install in Chrome and Edge on desktop — gives you a launcher icon that opens the calculator in its own window with no browser chrome. It behaves like an installed app because that is what a progressive web app is, and it takes about 40 KB rather than 40 MB. Once the page has loaded, the calculation itself needs no connection at all, so it keeps working if the network drops mid-session; a cold start still needs to fetch the page.
The one in Google. Searching a birth date does surface an age widget in the results, and for a single quick number it is perfectly good. Three things it does not do: it gives years, months and days but not the totals — weeks, days, hours, leap days lived, the weekday you were born, the next-birthday countdown; it has no second date field, so it cannot answer "how old was I on 14 June 2011" or an age-as-on-cut-off question; and the date of birth you typed is a search query, which means it travels to a server and lands in your search history. Everything on this page stays on your device.
10. Which of the ten age tools you want
All ten run the same engine and the same day-counting rules, so they never disagree with each other — they differ only in what they ask for, what they put on screen, and which convention the answer is expressed in. If you are not sure, this page is the general one.
| Tool | Use it when | What it gives you |
|---|---|---|
| Age Calculator | Exact age today, or measured at any date you set | Years/months/days, every total, next birthday, leap days, star sign |
| Age on a Date | A cut-off date decides something — school entry, a policy, a form | Age on that exact date, with both dates shown side by side |
| Age Today | You want today’s number and nothing to configure | Days, weeks, months, the weekday you were born, leap days |
| Chronological Age | An assessment, IEP or clinical report asks for chronological age | Years, months and days in the format reports expect |
| Baby Age | The child is a few days to a few years old | Days, weeks, completed months, plus corrected age for a preterm birth |
| Child Age | A school form asks for age, or a clinic asks for age in months | Years/months/days, completed months, paediatric stage, cut-off check |
| Gestational Age | The age you need is measured in weeks of pregnancy | Weeks+days notation, due date, trimester, term band, milestone dates |
| Age Calculator India | A form asks for age “as on” a cut-off in DD/MM/YYYY | Completed years on any cut-off date, with the totals forms ask for next |
| UPSC Age | Checking eligibility for an Indian civil-services examination | Age on the cut-off, category limits, attempts left, eligible exam years |
| Dog Age | The birthday is your dog’s, not a person’s | Human-equivalent years by size band, life stage, typical lifespan |
For questions that are about dates rather than ages, the date calculator counts days between two dates or shifts a date by a number of days, the time calculator adds and subtracts durations, and the hours calculator turns clock-in and clock-out times into paid hours with breaks deducted.
11. Age Calculator FAQs
How do I calculate my exact age in years, months and days?
Count whole years from your date of birth to today, then whole months, then the days left over — always counting forward from the birth date rather than subtracting the date fields. Enter your date of birth above and the calculator does this instantly, along with your age in total months, weeks, days, hours and minutes.
Why is my age in days not exactly my age in years times 365?
Because of leap days. Every four years (with century exceptions) adds an extra day, so a 40-year-old has lived roughly 10 extra days beyond 40 × 365. This calculator counts real calendar days rather than multiplying, so the total is exact.
When does a person born on 29 February have a birthday in a non-leap year?
This calculator uses 28 February, which is the convention used by most software and by day-clamping date libraries. Some legal systems instead treat the person as turning a year older on 1 March. If a legal age threshold is at stake, verify the rule in your jurisdiction.
Does the calculator use my time of birth?
No. All figures are measured from midnight at the start of your birth date. Hours and minutes are derived from whole days, so they are consistent and reproducible rather than depending on a birth time most people do not know precisely.
Is my date of birth sent to a server?
No. Every calculation runs locally in your browser using client-side JavaScript. Nothing is uploaded, logged, or stored in cookies, and the page continues to work with no network connection once it has loaded.
Can I calculate age between two dates instead of up to today?
Yes. Change the “Age as of” field to any date, past or future, and the calculator measures to that date instead. If you specifically want the age-on-a-given-date workflow with both dates side by side, use the Age Calculator on a Date.
How old am I if I was born in 1990?
Anyone born in 1990 turns 36 during 2026: 35 until their birthday falls, then 36 for the rest of the year. A birth year on its own can never narrow it past those two numbers, so enter the month and day above for an exact figure. There is also a page for every birth year from 1930 to 2024 with the day-count range, the milestone years and the calendar facts for that year.
How do I calculate age in Excel or Google Sheets?
Use DATEDIF with the birth date in A1: =DATEDIF(A1, TODAY(), "y") for whole years, "ym" for the leftover months and "md" for the leftover days. DATEDIF is undocumented in Excel and will not autocomplete, so type it in full. Its "md" unit is known to return a wrong or negative value around month ends, so check the day component against this calculator before relying on it.
What generation is my birth year in?
On the Pew Research Center cut-offs: Silent Generation 1928 to 1945, Baby Boomer 1946 to 1964, Generation X 1965 to 1980, Millennial 1981 to 1996 and Generation Z 1997 to 2012. Pew has not named the cohort after Gen Z; the widely used Generation Alpha label starting around 2013 comes from the demographer Mark McCrindle. Other organisations draw the lines differently, so treat the label as a convention for comparing survey groups rather than a fact about a person.
How many days until my next birthday?
Enter your date of birth and the next-birthday panel gives the date, the weekday it falls on, the age you will reach and the number of days remaining. The count is in whole days from today, so it changes at midnight in your own timezone rather than at some server’s midnight.
Why do two age calculators sometimes give different answers?
Almost always one of three things: whether the day count includes leap days, whether the months are counted forward from the birth date or subtracted field by field, and what happens to a 29 February birthday in a common year. This calculator counts real leap days, counts months forward, and treats 28 February as the birthday in a common year. A tool that divides elapsed days by 365.25 will disagree with all three.
How do I calculate age by date of birth?
Enter the date of birth in the first field and leave the second on today. The calculator counts whole years forward from the birth date, then whole months, then leftover days — the same order a registrar or a form expects — and adds the totals in months, weeks, days, hours and minutes. Nothing else is needed; there is no submit button and the result updates as you type.
Is there an age calculator app I need to install?
No download is required. The site ships a web app manifest, so “Add to Home Screen” on Android or iOS, or “Install” in Chrome or Edge on desktop, gives you a launcher icon that opens the calculator in its own window. It behaves like an installed app and costs about 40 KB. Once loaded, the arithmetic needs no connection, so it keeps working if the network drops — a cold start still needs to fetch the page.
Is this age calculator free to use online?
Yes — free, with no sign-up, no account and no usage limit. "Online" describes how you reach the page, not how it works: the calculator arrives as a static file and every figure is computed by JavaScript on your own device, so no request is made when you type a date.
How is this different from the age calculator in Google?
Google’s result widget gives years, months and days, which is fine for a quick number. It has no second date field, so it cannot answer “how old was I on this date” or an age-as-on-cut-off question; it does not report totals, leap days lived, the weekday you were born or a next-birthday countdown; and the date you typed is a search query, so it goes to a server and into your search history. Here the date never leaves the page.