Everyday

Age Calculator — Exact Age from Date of Birth

Find your age in years, months and days from your date of birth and a reference date. See total calendar days and the countdown to your next birthday.

Formula and sources updated · Data sources · 1View algorithm, constants and default inputs (JSON)

Enter your values

Age (years / months / days) 36 yr 9 mo 30 d
Results

Results

ResultsDate of birth: 1990-01-01 / Reference date: 2026-10-31 / Next birthday: 2027-01-01Date of birth1990-01-01Reference date2026-10-31Next birthday2027-01-01

About this calculator

Calculate calendar age at the selected reference date. Months are added from the last birthday, clamping to the last day of shorter months. February 29 birthdays use March 1 in non-leap years; a birthday on the reference date has a zero-day countdown. The same reference date also determines total weeks, total hours and the weekday of birth. These totals use calendar days, not time-of-birth or daylight-saving adjustments.

Recomputed from this page's implementation at build time · checked 2026-10-22

A February 29 birthday rolls forward to March 1, not back to February 28

Age is three answers pretending to be one: whole years, a year-month-day breakdown, and a raw day count. They only diverge on leap days and month ends — which is exactly where people check them.

0100002000030000BirthToday80 years
The axis is days lived, not birthdays counted. Forty-six per cent of a nominal eighty-year span is gone, and the remainder is the stretch that every retirement projection quietly assumes is still fully available.

How the result moves

Year of birth → · Days lived
1980199020002010
Days lived17,09613,4439,7916,138

Ten years of birth is about 3,650 days, except when a leap year falls inside the span. The differences between these columns are not round numbers, which is exactly why age in days has to be counted rather than estimated.

Leap days and anniversaries

A birthday with no calendar complications

Whole years
36
Years / months / days
36 / 9 / 21
Total days
13,443
Next birthday
2027-01-01
Days until it
71

All three measures describe the same interval and agree. This card is the control: whatever looks odd later is caused by the calendar, not by the arithmetic.

A leap-day birthday, viewed from October

Whole years
26
Years / months / days
26 / 7 / 21
Next birthday
2027-03-01
Days until it
130

The next anniversary is March 1, because the coming year has no 29th of February. Using February 28 instead would be a different answer by one day, so the date is printed rather than left to be inferred.

The day before that birthday

Whole years
25
Years / months / days
25 / 11 / 27
Next birthday
2026-03-01
Days until it
1

This is the input that separates the two conventions. Here the birthday is still a day away; a page treating February 28 as the anniversary would report zero on the same date, and its year count would already have incremented.

The reference date is the birthday itself

Whole years
36
Years / months / days
36 / 0 / 0
Days until next birthday
0

Zero days remain, not a full year. The field measures distance to the next anniversary, and today counts as no distance at all — read it as 'how far away', not as 'when next'.

Reference date equal to the birth date

Whole years
0
Years / months / days
0 / 0 / 0
Total days
0
Days until next birthday
0

Every field is zero and the next birthday is today. This is the one input where the age and the countdown collapse to the same value without anything being wrong.

Inputs that have no age

  • You typed
    birthdate
    2030-01-01
    asOf
    2026-10-22
    It answered inputError

    A birth date in the future

    Negative ages are not silently produced. Returning a number here would be easy and would hide a typo in the year, which is the most common mistake in this field.

  • You typed
    birthdate
    2026-02-30
    asOf
    2026-10-22
    It answered inputError

    A date that does not exist

    The string looks like a date and is still rejected, because no 30th of February exists. Shifting it to March would compute an age for a birthday nobody has.

  • You typed
    birthdate
    1990-01-01
    asOf
    It answered inputError

    An empty reference date

    There is no default of 'today' when the field is cleared. Substituting the current date would make the result depend on when the page was opened, which is exactly the kind of hidden input this page avoids.

How each number is defined

February 29 has no anniversary in ordinary years
In a year without a 29th of February, the anniversary is placed on March 1. February 28 is the common alternative and is not unreasonable, but it moves the birthday earlier, so the two conventions disagree for a full day each year.
Whole years count completed anniversaries
The year field increments on the anniversary, not on January 1. Someone born on a date that has not yet arrived this year is one year younger in that field than a naive subtraction of years would suggest.
The three-part figure is a subtraction from the last anniversary
It reports years since the last birthday, then months, then days. That is why the month and day fields can look large — they are measured from the anniversary, not from the start of the calendar year.
Days until the next birthday can be zero
On the anniversary the field reads zero rather than a full year, and it never reads a negative number because the next anniversary is always ahead or today.

The competitor's stated rule

  • calculator.netchecked 2026-10-22

    Theirs
    States its month-end rule explicitly — February 28 to March 28 counts as one month — and does not document a leap-day rule.
    Here
    Puts leap-day birthdays on March 1 and prints the resulting next-birthday date so the rule can be checked from the output.

    Why they built it that wayThe result block leads with the next birthday, because the page is reached by people asking about themselves rather than scheduling something. Total days is present but secondary - right for curiosity, wrong for planning.

    The day before a leap-day birthday, the two approaches land one day apart. That is enough to change a notice period, a visa window or an eligibility cut-off, so the rule needs to be visible rather than assumed.

Enter 2000-02-29 with a reference date of 2026-02-28: the next birthday reads March 1 and one day remains. Move the reference date to 2026-03-01 and the remaining days drop to zero while the year count increases.

Cross-checked the day count against the date calculator for identical endpoints · impl 1f3c8a44

Method and assumptions

Count completed birthdays first. Starting at the most recent birthday, count complete calendar months; if the original day does not exist in a shorter month, use that month’s last day. The remaining calendar days form the last part of the age. Result units are yr (years), mo (months) and d (days). Total calendar days is a separate date difference, not years multiplied by 365. This calculator treats February 29 birthdays as March 1 in non-leap years. Dates are compared in UTC without time-of-day inputs; a birthday on the reference date has a countdown of zero.

Data sources

MDN documents the JavaScript Date and UTC operations used here. The March 1 leap-day birthday rule and month-end handling are this calculator’s calendar convention; the reference does not independently validate these choices.

Disclaimer

These calculators give general estimates. Sizing, pricing, availability and standards vary by brand, retailer and country, so treat the output as a starting point and confirm it against the seller's or authority's own figures.

Maintained by: CalcDelta Formula and sources updated ·

Implementation source

This record describes the implementation used by this page. It is not independent validation. External references, when available, support only the stated formula or definition; estimates and custom rules retain their own assumptions.

View algorithm, constants and default inputs (JSON)

Formula and variables

A = D_ref − D_birth (Y → M → D)

A
Calendar age: completed years, then months, then remaining days
D_ref
Reference date, on or after the date of birth
D_birth
Date of birth

Years count completed birthdays; months are counted from the last birthday and clamped to month end when needed. This tool uses March 1 for February 29 birthdays in non-leap years. Total calendar days is a separate UTC date difference, not a fixed-length conversion of years and months.

Embed this calculator

Copy the iframe snippet to place this calculator on your site. No account required. The snippet stays in sync with the inputs currently shown.

Frequently asked questions

How is exact age calculated from a date of birth?

The tool first counts completed birthdays, then complete months from the last birthday, then the remaining days. Months end on the same day of the month when possible, or the last day of a shorter month. For example, from January 31 to February 29, 2024, the result is 0 yr, 1 mo, 0 d, while the total date difference is 29 days. It does not divide elapsed days by an average year or month length.

Can I calculate age on a past or future date?

Choose the reference date you want to calculate age on. It may be today, a past date or a future date, but it cannot precede the date of birth. The birthday countdown is measured from that reference date.

Which dates are accepted, and how are February 29 birthdays handled?

Enter valid calendar dates with years 0001 to 9998. The reference date must be on or after the date of birth. For someone born on February 29, this calculator counts the birthday on March 1 in a non-leap year and on February 29 in a leap year. This is the calendar convention used by this tool.

What is the age for a January 1, 1990 birth on October 12, 2026?

There have been 36 completed birthdays. From January 1, 2026 to October 12 is 9 complete months and 11 days, so the result is 36 yr, 9 mo, 11 d. The total date difference is 13,433 calendar days. The next birthday is January 1, 2027, 81 days after the reference date.