How to calculate age in years, months and days

To calculate an exact age, count the full years since the date of birth, then the full months since the last birthday, then the days left over, borrowing the real length of the previous month when the days do not fit. Someone born on 15 August 1990 is 36 years, 2 months and 11 days old on 26 October 2026. The age calculator below does this for any two dates, including leap day birthdays.

6 min read

The method in three steps

Exact age is a calendar calculation, not a division. Dividing the number of days by 365 or 365.25 gives a decimal that is wrong by a day or two around birthdays, which matters for school entry, insurance, sports categories and legal ages. The reliable method works field by field.

First, years: subtract the birth year from the current year, and take away one if the birthday has not happened yet this year. Second, months: count the full months from the last birthday to today. Third, days: count the days from that month date to today. If the day of today is smaller than the day of birth, borrow one month and add the number of days in the previous month.

  • Years: has the birthday passed this year? If not, subtract one.
  • Months: full months since the last birthday, from 0 to 11.
  • Days: days since the last monthly date, using the real month length.

Try it here: Age Calculator

Open the full tool page

A worked example with borrowing

Take a date of birth of 28 March 1995 and the date 10 July 2026. The birthday on 28 March 2026 has passed, so the years are 2026 minus 1995, which is 31. From 28 March to 28 June is 3 full months. The 10th is before the 28th, so we cannot reach 28 July; instead we count from 28 June to 10 July. June has 30 days, so that is 2 days to the end of June plus 10 days in July, 12 days in total. The age is 31 years, 3 months and 12 days.

Doing it in columns, like a subtraction, gives the same result: 10 minus 28 is negative, so borrow the 30 days of June (10 plus 30 minus 28 is 12) and take one from the months (7 minus 1 minus 3 is 3). The borrowed month length is what most quick formulas get wrong.

YearMonthDay
Date2026710
Date of birth1995328
After borrowing 30 days of June2026640
Difference31312

Birthdays on 29 February and at month ends

People born on 29 February have a real birthday only in leap years (2024, 2028, 2032). In other years the calculator counts the birthday on 28 February, so the new age starts on 28 February. Laws differ by country: some legal systems treat 1 March as the day a leap day baby reaches a new age in common years, so for a legal deadline such as driving or voting age, check the local rule.

Month ends need the same care. Someone born on 31 January has no 31st in February, so they become one month older on the last day of February. Someone born on 31 August reaches each new month on the 30th in months with 30 days. The calculator uses the real length of every month, so these cases come out the way people count them.

Age on a specific date, past or future

Many forms ask for the age on a reference date rather than today: the age on 1 September for school entry, on 31 December for youth sports categories, on the date of an accident for insurance, or on the day of a planned retirement. In the calculator, change the Age on field from today to that date. It also works backwards, for example to find how old a grandparent was when they emigrated.

Below the age you see the totals in months, weeks, days and hours, the weekday you were born and a countdown to the next birthday. The 10,000th day, which some people celebrate, comes at about 27 years and 4 months.

Calculating age in Excel and Google Sheets

With the date of birth in cell A2, the age in full years is =DATEDIF(A2,TODAY(),"Y"). DATEDIF also returns the remaining months with "YM" and the remaining days with "MD", so a full age can be built as =DATEDIF(A2,TODAY(),"Y")&" years, "&DATEDIF(A2,TODAY(),"YM")&" months, "&DATEDIF(A2,TODAY(),"MD")&" days". Replace TODAY() with a cell reference to get the age on another date.

DATEDIF is an older function that Excel keeps for compatibility; it does not appear in the formula suggestions, and Microsoft warns that the "MD" unit can give wrong results in some month end cases. Google Sheets has the same function. Avoid =(TODAY()-A2)/365, which is off by a day near birthdays because of leap years. For whole years only, =INT(YEARFRAC(A2,TODAY(),1)) is another option.

GoalFormula (birth date in A2)
Age in full years=DATEDIF(A2,TODAY(),"Y")
Months after the last birthday=DATEDIF(A2,TODAY(),"YM")
Days after the last monthly date=DATEDIF(A2,TODAY(),"MD")
Total days lived=TODAY()-A2
Age on a date in B2=DATEDIF(A2,B2,"Y")

How age is counted in different cultures

Most of the world counts age as described above: zero at birth, plus one on each birthday. The traditional East Asian system was different: a baby was one year old at birth and everyone gained a year at the New Year, so a child born in December could be two years old a few days later. South Korea, the last country where this was common in daily life, made the international method the standard for legal and administrative purposes in June 2023, although the old count is still heard in conversation.

For babies, age is usually given in weeks and then in months up to about two years. For children born prematurely, doctors often use a corrected age (the age minus the number of weeks born early) when judging development, while legal documents always use the real date of birth.

Common mistakes

  • Subtracting only the years: someone born in December 2000 is not 26 in January 2026 but 25.
  • Dividing days by 365: leap years make the result drift, and near a birthday it can be a day early or late.
  • Using 30 days for every month: the borrowed month must be the real one before the current date.
  • Mixing date formats: 04/05/2010 is 5 April in the US and 4 May in most other countries. Pick dates in the calendar to avoid this.
  • Forgetting time zones for very exact ages: a birth just before midnight in one country is the next day in another. Use the date on the birth certificate.

Step by step

  1. Enter the date of birthPick it in the calendar or type it in the Date of birth field.
  2. Set the Age on dateLeave today's date, or choose a past or future date to get the age on that day.
  3. Read the exact ageThe result shows years, months and days, using the real length of each month.
  4. Check the extrasSee total months, weeks, days and hours, the weekday of birth and the next birthday.

Frequently asked questions

How do I calculate my age from my date of birth?

Subtract the birth year from the current year and take away one if your birthday has not come yet this year. For months and days, count full months since the last birthday and then the remaining days.

How old is someone born on 29 February in a common year?

The calculator counts their birthday on 28 February in years without 29 February. Some countries use 1 March for legal purposes, so check local rules for official deadlines.

How can I find my age on a specific date?

Enter your date of birth and change the Age on date to the day you need. It works for dates in the past and in the future.

What is the Excel formula for age?

=DATEDIF(A2,TODAY(),"Y") gives full years for a birth date in A2. Add "YM" and "MD" versions for months and days.

Why does dividing days by 365 give the wrong age?

Because a year is not always 365 days. Leap years add a day every four years, so the decimal result drifts and is wrong around birthdays.

Is my date of birth sent anywhere?

No. The calculation runs in your browser. The date is kept only in your own browser so it is filled in next time, and it is never sent to a server.