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.
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.
13,443Days lived since 1 January 1990as of 22 October 2026
130Days until a leap-day birthdayobserved on 1 March, not 29 February
1The day before that birthdayone day away, not a whole year
How the result moves
Year of birth → · Days lived
1980
1990
2000
2010
Days lived
17,096
13,443
9,791
6,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 answeredinputError
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 answeredinputError
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 answeredinputError
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.
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.
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: CalcDeltaFormula 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.
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.