How Exact Age Is Calculated

By Udit Agarwal · Updated October 17, 2026

Exact age is the number of complete years since your birth date, then the complete months since the last monthly anniversary of it, then the days left over. Someone born on 15 June 1990 is 36 years, 4 months and 2 days old on 17 October 2026: their 36th birthday was on 15 June 2026, four more months take the count to 15 October, and two days remain. The idea is simple, but month lengths, leap years and different conventions mean that calculators do not always agree.

The borrow method, step by step

On paper, the quickest way is to subtract the birth date from the target date column by column, borrowing when a column goes negative, just as in ordinary subtraction:

  1. Subtract the years, the months and the days separately.
  2. If the days are negative, borrow a month: take 1 from the months and add the number of days in the month before the target date's month.
  3. If the months are negative, borrow a year: take 1 from the years and add 12 to the months.

Here is someone born on 25 December 1985, on 17 October 2026:

Step Years Months Days
Subtract each column: 2026 − 1985, 10 − 12, 17 − 25 41 −2 −8
Days are negative: borrow September's 30 days 41 −3 22
Months are negative: borrow a year 40 9 22

The answer is 40 years, 9 months and 22 days. Counting forward confirms it: the 40th birthday was on 25 December 2025, nine months later is 25 September 2026, and 22 days after that is 17 October.

Borrowing the length of the month before the target date gives the same answer as counting from the last monthly anniversary, as long as that month contains the birth day. Birthdays on the 29th, 30th and 31st are the exception, because the anniversary can fall in a month that is too short. If the days are still negative after borrowing, which can happen in early March for birthdays on the 30th or 31st, count the days from the last day of February instead: 31 January to 1 March 2026 is 1 month and 1 day.

Age in total months, weeks and days

Sometimes one number is more useful than three, and the totals come from the same dates:

  • Total months: years × 12 + months. For the 15 June 1990 example, 36 × 12 + 4 = 436 months.
  • Total days: the calendar days between the two dates. From 15 June 1990 to 17 October 2026 is 13,273 days: 36 years of 365 days make 13,140, the nine 29 Februaries in between (1992 to 2024) add 9, and 15 June to 17 October 2026 adds 124.
  • Total weeks: total days ÷ 7, rounded down. 13,273 days is 1,896 weeks and 1 day.

Leap days are why multiplying by 365 falls short. In the Gregorian calendar a year divisible by 4 is a leap year, except century years, which must be divisible by 400: 2000 was a leap year and 2100 will not be. That makes the average year 365.2425 days long.

Totals also mark milestones. The same person was 10,000 days old on 31 October 2017 and will be 20,000 days old on 18 March 2045. The Date Calculator adds any number of days to a date, so you can find your own.

Leap-year birthdays: 29 February

Someone born on 29 February has a real birthday only in leap years. In the other three years, people use one of two conventions: 28 February, the last day of their birth month, or 1 March, the day after 28 February. Laws differ between countries on which date counts for legal ages.

The borrow method picks a side. On 28 February 2026, someone born on 29 February 2004 comes out as 21 years, 11 months and 30 days, and on 1 March 2026 as exactly 22 years, so in a common year the age in years ticks over on 1 March. In a leap year the birthday is an ordinary one: on 29 February 2028 the same person is exactly 24. By 2026 they have had five birthdays that fell on an actual 29 February, in 2008, 2012, 2016, 2020 and 2024.

The ArrayKit Age Calculator shows the exact age this way, but its next-birthday countdown uses 28 February in common years. On 28 February 2026 it therefore shows 0 days to go and "Happy birthday!" while the exact age still reads 21 years, 11 months and 30 days.

Why age calculators disagree by a day

Run the same dates through several calculators and you may get answers a day apart. The usual causes:

  • Birthdays at the end of a month. Take someone born on 31 January 1990, on 5 May 2026. There is no 31 April, so the months can be counted two ways. Borrowing April's 30 days gives 36 years, 3 months and 4 days, the result the ArrayKit Age Calculator shows. Treating 30 April as the monthly anniversary gives 36 years, 3 months and 5 days. Both conventions are in use.
  • Counting the first day. Age is normally counted in elapsed days, so a baby born yesterday is 1 day old. Some day counters include both the start and the end date, which adds one.
  • Time zones in software. A birth date is a calendar date in the place of birth. Software that turns a date into midnight in Coordinated Universal Time (UTC) and then shows it in local time can display the day before for users west of Greenwich, which shifts the result by a day. Time Zones, UTC and Daylight Saving, Explained covers why.
  • 29 February. A calculator that treats 28 February as the birthday in common years disagrees on that day with one that uses 1 March.
  • Spreadsheet formulas. In Excel, =DATEDIF(A2, TODAY(), "Y") returns complete years and the "YM" unit the months since the last birthday, but Microsoft's documentation warns that the "MD" unit, the leftover days, can return a negative number, a zero or an inaccurate result. The Excel Formula Generator includes a ready-made DATEDIF recipe.

East Asian age reckoning

In the traditional East Asian count, a baby is 1 year old at birth and everyone gains a year at the new year rather than on their birthday. In the Korean version the count went up on 1 January, so a baby born on 31 December was 2 the next day; on the same day that baby is 0 by international age, just 1 day old. China's traditional count, called xusui, works the same way but goes up at the Lunar New Year.

South Korea moved its laws and official documents to international age on 28 June 2023, although a few rules, such as those for military service and for buying alcohol and tobacco, still go by year of birth. Official ages in China and Japan also use completed years, with the traditional count kept for some customs.

Using the ArrayKit Age Calculator

The Age Calculator takes a date of birth and an "Age at the date of" date, which starts as today but can be any past or future day, so it also tells you how old someone was on a given day or will be on a future one. Both dates have an optional time field. It shows:

  • the exact age in years, months and days, with a copy button;
  • the same age as total months, weeks, days, hours, minutes and seconds;
  • the date of the next birthday, the days until it and the age about to be reached.

It uses the three borrow steps above, taking the length of the month before the target date's month. When that still leaves the days negative, in early March for birthdays on the 30th or 31st, it borrows the month before February as well, so 31 January to 1 March 2026 shows 29 days and the month ticks over on 3 March; counting from the last day of February, as described earlier, gives 1 month and 1 day instead. Total months is years × 12 + months. Total days and weeks count calendar days and ignore the times, while hours, minutes and seconds use the actual time elapsed, so entering a time of birth changes those three. A birth date after the target date, or a date that does not exist such as 31 April, shows an error instead of a result. Leap-day birthdays work as described above. The calculation runs in your browser, and the dates you enter are not sent anywhere.

For gaps between any two dates, the Date Duration Calculator gives years, months, days, weeks and business days, and the Day of the Week Calculator tells you which weekday you were born on.

Frequently asked questions

How do I calculate my exact age? Subtract your birth date from today's date in years, months and days. If the days come out negative, borrow the number of days in the previous month; if the months come out negative, borrow 12 months from the years. Someone born on 25 December 1985 is 40 years, 9 months and 22 days old on 17 October 2026.

How many days old am I? Count the calendar days from your birth date to today, including every 29 February in between. Someone born on 15 June 1990 is 13,273 days old on 17 October 2026, which is 1,896 weeks and 1 day.

When does someone born on 29 February turn a year older? In a leap year, on 29 February. In other years it depends on the convention: some people and calculators use 28 February and others 1 March, and laws differ by country. By the borrow method, the age in years changes on 1 March.

Why do two age calculators give different answers? Usually because of a birthday near the end of a month, a convention for 29 February, inclusive day counting or a time zone conversion. For someone born on 31 January 1990, 5 May 2026 can come out as 36 years, 3 months and 4 days or as 36 years, 3 months and 5 days.

How do I calculate age in Excel? With the birth date in A2, =DATEDIF(A2, TODAY(), "Y") returns the age in complete years, and the "YM" unit gives the months since the last birthday. Microsoft advises against the "MD" unit for the leftover days, because it can return wrong results.

What is Korean age? The traditional Korean count, in which a baby is 1 at birth and everyone adds a year on 1 January. South Korea switched its laws and official documents to international age on 28 June 2023, so the traditional count is now informal.

Does the time of birth matter? Not for years, months and days, which are measured in calendar dates. It matters only for hours, minutes and seconds, which the ArrayKit Age Calculator works out from the optional time fields.

Keep going

Calculateur d’âge

More guides

  • Date Calculations, Explained: Counting and Adding Days — How to count the days between two dates, add days, weeks or months to a date, and why calculators disagree: inclusive counts, month ends and leap years.
  • Cron Expressions, Explained — Crontab syntax explained: the five cron fields, special characters, common schedules, the day-of-month or day-of-week rule, @daily shortcuts and time zones.
  • Unix Timestamps and Epoch Time, Explained — What a Unix timestamp is, why epoch time ignores leap seconds, how to tell seconds from milliseconds, converting in JS, Python and SQL, and the 2038 problem.
  • Time Zones, UTC and Daylight Saving, Explained — UTC vs GMT, offsets such as +05:30 and +05:45, IANA zone names, why EST and IST are ambiguous, daylight saving shifts, and using a time zone converter well.
  • UUIDs, Explained: v4, v7 and GUIDs — What a UUID is, how the 8-4-4-4-12 format works, UUID v4 vs v7 and the other versions, how unlikely a v4 collision is, and how UUIDs affect database indexes.
  • The Pomodoro Technique, Explained — How the Pomodoro Technique works: the 25-minute focus session, the 5-minute break, the long break after four, popular variations like 50/10, and tips that help.

All Date / Time tools · All guides