Date & Time Runs locally Ready to use Built-in examples No tracking

Age Calculator

Enter a birth date to get exact age (years, months, days), total days and hours, and days until the next birthday. Runs locally in your browser.

Filling in a form, checking an ID, counting how many months old a baby is, or working out how long until the next birthday — age looks trivial until it has to be exact, and then month lengths, February and leap years all get in the way of the borrowing. This tool works the calendar difference out year by year, month by month and day by day, and returns the totals alongside the countdown to the next birthday.

Exact age follows the usual convention: one more year on the birthday itself, one less before it. The traditional age used in parts of East Asia counts differently — a person is one at birth and gains a year at the new year — which often puts the two figures one or two years apart; official documents use the calendar figure, and both appear here with the zodiac animal of the birth year. Set a custom reference date to compute an age as of any date rather than today.

How to use

  1. Enter the date of birth; today is the reference unless another date is set.
  2. Read the exact age in years, months and days, with the total days and hours.
  3. Check the traditional age and the zodiac animal of the birth year.
  4. See how many days remain until the next birthday as of the chosen reference date.

How it works

How exact age is computed

Exact age is computed month by month from the Gregorian birthday: a full X years if the birthday has passed this year, otherwise X-1 years plus months. For example born 1990-06-15, on 2026-09-11 you're 36 years, 2 months and 27 days.

Total days

Total days = the number of calendar days between two dates (including Feb 29 in leap years). For example 1990-06-15 to 2026-09-11 is 13,237 days.

Next birthday

Next birthday: the nearest birthday after the base date. For Feb 29 birthdays, non-leap years treat it as around March 1.

Traditional age and zodiac

Traditional age uses lunar years: 1 year at birth, plus 1 at each lunar new year (first day of the first lunar month), i.e. traditional age = lunar year of base date - lunar year of birth + 1, usually 1-2 years above exact age (someone born in the last lunar month becomes 2 at Spring Festival while exact age is still 0). The zodiac and sexagenary cycle also key off the birth lunar year; those born before Spring Festival take the previous year's zodiac. Next lunar birthday moves the birth lunar month/day to the current lunar year; leap-month birthdays use the ordinary month in years without a leap month, and day 30 falls back to day 29 in short months.

Code example

JavaScript Full age: borrow digit by digit across Y/M/D

function fullAge(birth, today) {
  let age = today.getFullYear() - birth.getFullYear();
  const m = today.getMonth() - birth.getMonth();
  if (m < 0 || (m === 0 && today.getDate() < birth.getDate())) age--;
  return age;
}

fullAge(new Date(1990, 5, 15), new Date(2026, 8, 14));  // 36 (one day short)
fullAge(new Date(1990, 5, 15), new Date(2026, 8, 15));  // 37 (on the birthday)

Python relativedelta gives exact months and days

# pip install python-dateutil
from dateutil.relativedelta import relativedelta
from datetime import date

diff = relativedelta(date(2026, 9, 15), date(1990, 6, 15))
diff.years, diff.months, diff.days   # (36, 3, 0)

# Same rule as this tool: borrow digit by digit across Y/M/D, which handles
# long and short months and leap years for free

FAQ

Is age exact or traditional?

Both are given: exact age is the legal method — 0 at birth, plus 1 at each Gregorian birthday; traditional age is the folk method — 1 at birth, plus 1 at each lunar new year, usually 1-2 years above exact age. School entry, retirement and ID use exact age.

How are Feb 29 leap-day birthdays handled?

In non-leap years, the birthday counts as having passed after Feb 28 and before Mar 1. The whole-year count is unaffected; the month difference follows the calendar.

Why do I get a different day count than other tools?

Some tools count both endpoints (inclusive). This tool uses the calendar-day difference: the birth day isn't day 1 — the algorithm common on IDs and social security.

How is exact age computed?

Exact age starts from the birth day and adds 1 at each birthday; before this year's birthday it's the count of full years completed. Formal uses — law, school entry, retirement — always go by exact age, computed as current date minus birth date, truncated to whole years.

How many years apart are traditional and exact age?

Traditional age is 1 at birth, plus 1 at each lunar new year, so traditional age = lunar year of base date - lunar year of birth + 1, usually 1-2 above exact age; someone born in the last lunar month reaches 2 at Spring Festival while exact age is still 0. Traditional age lingers in customs; formal settings like school age and ID use exact age.

How do I compute the months between two dates?

Use year difference x 12 + month difference, adjusting by borrowing when days differ. For example 2020-05-20 to 2026-09-12 is 6 years, 3 months and 23 days. This tool gives the exact "years, months and days" form.

Is age the same as years of work or social-security years?

No. Age is computed from the birth date; work tenure from the hire date; social-security years from accumulated contribution months. Computing tenure, annual leave and retirement dates needs each own's start date — age can't be reused directly.