# Age calculator

> Exact age from a date of birth in years, months and days on any date, with the next birthday and age in months, weeks, days and hours.

Interactive version: https://www.calcopenly.com/datetime/age-calculator
Subject: Date and time calculators

Age in years is the number of birthdays reached on the chosen date, following the rule of section 9 of the Family Law Reform Act 1969 (England and Wales) that a person attains an age at the start of the anniversary of their birth. The months and days after that are counted forward from the last birthday: whole months first, then the days left over. Totals in days, weeks and hours come from subtracting the two dates' day numbers.

Forms often ask for age on a fixed date, such as the start of a school year, a competition's cut-off or a pension date, rather than today. Someone born on 20 May 1990 was 35 years, 7 months and 26 days old on 15 January 2026, or 13,024 days, and their next birthday fell on Wednesday, 20 May 2026.

For people born on 29 February, pick whether the birthday counts as 28 February or 1 March in common years; the choice changes the age in whole years only on 28 February of a common year.

## How to calculate age by hand

Write the date you are measuring on above the date of birth, as year, month and day, and subtract from the right. Take someone born on 28 November 1984, measured on 9 March 2026:

1. Days: 9 − 28 is negative, so borrow one month. February 2026 has 28 days, so the day column becomes 9 + 28 = 37, and 37 − 28 = 9 days. The month column drops from 3 to 2.
2. Months: 2 − 11 is negative, so borrow one year. The month column becomes 2 + 12 = 14, and 14 − 11 = 3 months. The year drops from 2026 to 2025.
3. Years: 2025 − 1984 = 41.

The age is 41 years, 3 months and 9 days. The calculator gets there by counting forward instead: the last birthday was 28 November 2025, three whole months reach 28 February 2026, and nine more days reach 9 March. It also reports 15,076 days, or 2,153 whole weeks.

### When borrowing breaks

Borrowing fails when the day of birth is larger than the month you borrow from. For someone born on 31 January 1990 and measured on 1 March 2026, the day column gives 1 + 28 − 31 = −2 days. Counting forward has no such gap: one month after 31 January 2026 is 28 February, the last day of that month, and one more day reaches 1 March. The age is 36 years, 1 month and 1 day, and on 28 February it was 36 years, 1 month and 0 days. Python's `dateutil` library gives the same answer. Excel's DATEDIF does not always: [Microsoft's DATEDIF page](https://support.microsoft.com/en-us/office/datedif-function-25dba1a4-2812-480b-84dd-8b32a451b35c) says its "MD" unit "may result in a negative number, a zero, or an inaccurate result". Its "Y" unit returns complete years and has no such warning.

The same month-end rule applies to babies. A baby born on 31 August turns one month old on 30 September, because September has no 31st.

## Age in months, weeks, days and hours

The totals do not multiply years by 365. The calculator converts both dates to day numbers and subtracts them, so every 29 February between the two dates adds a day. Two people who are both exactly 18 can have lived different numbers of days: someone born on 15 February 2008 reaches 18 on 15 February 2026 after 6,575 days, because 29 February 2008 falls inside the span, while someone born on 15 March 2008 reaches 18 after 6,574 days.

Weeks are whole weeks (days ÷ 7, rounded down). Months are 12 per year plus the months since the last birthday. Hours are days × 24, counted from midnight on the date of birth, not from the time of birth.

| Age on the birthday | Months | Days | Whole weeks | Hours |
|---|---|---|---|---|
| 1 | 12 | 365 or 366 | 52 | 8,760 or 8,784 |
| 10 | 120 | 3,652 or 3,653 | 521 | 87,648 or 87,672 |
| 18 | 216 | 6,574 or 6,575 | 939 | 157,776 or 157,800 |
| 21 | 252 | 7,670 or 7,671 | 1,095 | 184,080 or 184,104 |
| 30 | 360 | 10,957 or 10,958 | 1,565 | 262,968 or 262,992 |
| 40 | 480 | 14,610 | 2,087 | 350,640 |
| 50 | 600 | 18,262 or 18,263 | 2,608 or 2,609 | 438,288 or 438,312 |
| 65 | 780 | 23,741 or 23,742 | 3,391 | 569,784 or 569,808 |

Every age that is a multiple of 4 has a single day count, because any span of 4 whole years contains exactly one 29 February. That holds for spans between 1901 and 2099; 2100 is not a leap year, so a span that includes February 2100 has one day fewer. The [leap year checker](/datetime/leap-year-checker) shows which years qualify.

## Birthdays on 29 February

In the Gregorian calendar, 97 of every 146,097 days are 29 February, so if births were spread evenly, about 1 person in 1,506 would have a leap-day birthday. Ignoring the century rule gives 1 in 1,461.

Which date counts as the birthday in a common year depends on where you live, and only some legal systems say:

| Jurisdiction | When the new age starts in a common year | Source |
|---|---|---|
| Scotland | 1 March | [Age of Legal Capacity (Scotland) Act 1991, s.6](https://www.legislation.gov.uk/ukpga/1991/50/section/6) |
| England and Wales | Not stated; an age is reached at "the commencement of the relevant anniversary of the date of his birth" | [Family Law Reform Act 1969, s.9](https://www.legislation.gov.uk/ukpga/1969/46/section/9) |
| Japan | The year of age ends with 28 February, so the new age applies from 1 March | [Act on Calculation of Age (1902)](https://laws.e-gov.go.jp/law/135AC1000000050), applying [Civil Code art. 143](https://laws.e-gov.go.jp/law/129AC0000000089) |

The choice matters most for ages that carry legal rights. Someone born on 29 February 2008 turns 18 in 2026, a common year: on Saturday 28 February under the 28 February setting, or on Sunday 1 March under the 1 March setting, which is the Scottish rule.

Japan's rule has a second effect. A year of age there ends at the close of the day before the birthday, so a child born on 1 April reaches six on 31 March. The [School Education Act, art. 17](https://laws.e-gov.go.jp/law/322AC0000000026) starts compulsory schooling at the first school year after a child reaches six, and school years begin on 1 April, so children born on 1 April start school a year earlier than those born on 2 April of the same year.

## East Asian age reckoning

Korea has used three counts and China a fourth, and they can differ by two years for someone born late in December. For a person born on 15 December 2005, measured on 10 January 2026:

| Count | How it works | Age |
|---|---|---|
| International age (*man nai*) | Birthdays reached; what this calculator shows | 20 |
| Year age (*yeon nai*) | Current year minus birth year | 21 |
| Korean counting age | 1 at birth, plus 1 every 1 January | 22 |
| Chinese nominal age (*xusui*) | 1 at birth, plus 1 at each Lunar New Year | 21, then 22 from 17 February |

Korea's [Civil Act, art. 158](https://www.law.go.kr/%EB%B2%95%EB%A0%B9/%EB%AF%BC%EB%B2%95), counts age in full years including the day of birth. Year age survives in two laws. The [Youth Protection Act](https://www.law.go.kr/%EB%B2%95%EB%A0%B9/%EC%B2%AD%EC%86%8C%EB%85%84%EB%B3%B4%ED%98%B8%EB%B2%95), art. 2, defines a minor as under 19 but excludes anyone who has reached 1 January of the year they turn 19, so everyone born in 2007 could legally buy alcohol and tobacco from 1 January 2026, even at 18. For the timing of service duties, the [Military Service Act](https://www.law.go.kr/%EB%B2%95%EB%A0%B9/%EB%B3%91%EC%97%AD%EB%B2%95), art. 2, reads "from age X" as from 1 January of the year a person turns X.

Chinese nominal age moves at Lunar New Year rather than 1 January. The [Hong Kong Observatory's 2026 calendar table](https://www.hko.gov.hk/en/gts/time/calendar/text/files/T2026e.txt) puts the first day of the first lunar month on 17 February 2026. Japan abandoned its counted age, *kazoedoshi*, by the [Act on Age Counting](https://laws.e-gov.go.jp/law/324AC0100000096), in force from 1 January 1950, which requires public bodies to state ages in full years.

## Mistakes that change the answer

- **Time zones.** A birth at 00:30 on 1 January in London happened at 19:30 on 31 December in New York. Use the date on the birth certificate, which is the local date where the birth took place.
- **"In your 36th year".** This means aged 35: the first year of life runs from birth to the first birthday.
- **Hours from the time of birth.** The hour total runs from midnight at the start of the date of birth to midnight at the start of the chosen date. Someone born at 18:00 has lived 18 hours fewer than the figure shown.
- **Multiplying years by 365.25.** A spreadsheet formula such as years × 365.25 gives 6,574.5 days for an 18-year-old, when the true count is a whole number, 6,574 or 6,575, depending on how many 29 Februaries the span holds. For a span that isn't a birthday, such as the days between two events, use the [days between dates calculator](/datetime/date-difference-calculator), and the [day of the week calculator](/datetime/day-of-the-week-calculator) to see which weekday a date of birth fell on.

## Inputs

- **Date of birth**
- **Age on**
- **29 February birthdays in common years**: Only matters for people born on 29 February. (options: 28 February, 1 March)

## Results

- Age (years) — main result
- Exact age
- Age in months
- Age in weeks
- Age in days
- Age in hours
- Next birthday
- Next birthday falls on
- Days to next birthday
- Turning

## Formula

$$
\text{age} = \#\{\text{birthdays} \le \text{date}\},\ \text{then whole months and days since the last birthday}
$$

## Worked examples

### Born 20 May 1990, on 15 Jan 2026

- Date of birth: 1990-05-20
- Age on: 2026-01-15
- **Age: 35 years**
- **Exact age: 35 years, 7 months, 26 days**
- **Age in months: 427**
- **Age in weeks: 1,860**
- **Age in days: 13,024**
- **Age in hours: 312,576**
- **Next birthday: 2026-05-20**
- **Next birthday falls on: Wednesday**
- **Days to next birthday: 125**
- **Turning: 36**
- Checked against: Python 3.8: dateutil.relativedelta(date(2026,1,15), date(1990,5,20)) = 35y 7m 26d; (date(2026,1,15) − date(1990,5,20)).days = 13024; date(2026,5,20).weekday() = Wednesday

### Leap-day birthday on 28 Feb of a common year (28 Feb rule)

- Date of birth: 2000-02-29
- Age on: 2025-02-28
- 29 February birthdays in common years: 28 February
- **Age: 25 years**
- **Days to next birthday: 0**
- **Age in days: 9,131**
- Checked against: Rule applied by hand: the 2025 birthday is 28 Feb 2025, so the 25th birthday is reached; Python (date(2025,2,28) − date(2000,2,29)).days = 9131

### Leap-day birthday on 28 Feb of a common year (1 Mar rule)

- Date of birth: 2000-02-29
- Age on: 2025-02-28
- 29 February birthdays in common years: 1 March
- **Age: 24 years**
- **Exact age: 24 years, 11 months, 30 days**
- **Next birthday: 2025-03-01**
- **Next birthday falls on: Saturday**
- **Days to next birthday: 1**
- Checked against: Rule applied by hand: last birthday 29 Feb 2024; 11 months reach 29 Jan 2025, then 30 days (Python date arithmetic); date(2025,3,1).weekday() = Saturday

### Born on the 31st, measured on the last day of February

- Date of birth: 1985-01-31
- Age on: 2026-02-28
- **Age: 41 years**
- **Exact age: 41 years, 1 month, 0 days**
- **Age in days: 15,003**
- **Next birthday: 2027-01-31**
- **Next birthday falls on: Sunday**
- **Days to next birthday: 337**
- Checked against: Python 3.8: dateutil.relativedelta(date(2026,2,28), date(1985,1,31)) = 41y 1m 0d; day count 15003; date(2027,1,31).weekday() = Sunday

## Questions

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

Subtract your birth year from the current year, then take off 1 if this year's birthday hasn't arrived yet. For the months, count whole months from your last birthday, then the remaining days. Born 20 May 1990 and measured on 15 January 2026, that is 2026 − 1990 − 1 = 35 years, then 7 months to 20 December and 26 days to 15 January.

### How many days old am I?

Subtract your date of birth from today's date as day numbers; leap days are included automatically. Someone born on 20 May 1990 was 13,024 days old on 15 January 2026. The 10,000-day mark comes at 27 years, 4 months and 15 days (5 October 2017 for that birth date), and 20,000 days at about 54 years and 9 months.

### When does someone born on 29 February have a birthday in other years?

It depends on the rule used. Hong Kong's Age of Majority (Related Provisions) Ordinance, section 5, and Scotland's Age of Legal Capacity (Scotland) Act 1991, section 6(2), fix it at 1 March in years that are not leap years. England and Wales have no statutory rule, and many people celebrate on 28 February. Under the 1 March rule someone born on 29 February 2000 was still 24 on 28 February 2025; under the 28 February rule they had turned 25.

### What is Korean age, and does South Korea still use it?

Traditional Korean age counts 1 at birth and adds a year every 1 January, so it runs 1 or 2 years ahead of international age. South Korea switched its laws and official documents to international age on 28 June 2023. Someone born in 1990 is 37 in traditional Korean age throughout 2026 (2026 − 1990 + 1), while this calculator gives their international age, 35 or 36 depending on the date.

### How accurate is the age calculator?

Accuracy depends on your inputs and the method's assumptions. Decimal arithmetic uses 50 significant digits, but estimates, numerical methods and source data can be less precise; the displayed rounding does not remove those limits. It is checked against 4 worked examples whose answers come from independent sources; for example, “Born 20 May 1990, on 15 Jan 2026” is checked against Python 3.8: dateutil.relativedelta(date(2026,1,15), date(1990,5,20)) = 35y 7m 26d; (date(2026,1,15) − date(1990,5,20)).days = 13024; date(2026,5,20).weekday() = Wednesday.

### Where does the method come from?

Howard Hinnant — chrono-compatible low-level date algorithms; dateutil.relativedelta — the same month-end clamping convention; Family Law Reform Act 1969, s.9 (England and Wales) — a person attains an age at the start of the anniversary of their birth; Age of Legal Capacity (Scotland) Act 1991, s.6(2) — a 29 February birthday falls on 1 March in common years.

## Sources

- [Howard Hinnant — chrono-compatible low-level date algorithms](https://howardhinnant.github.io/date_algorithms.html)
- [dateutil.relativedelta — the same month-end clamping convention](https://dateutil.readthedocs.io/en/stable/relativedelta.html)
- [Family Law Reform Act 1969, s.9 (England and Wales) — a person attains an age at the start of the anniversary of their birth](https://www.legislation.gov.uk/ukpga/1969/46/section/9)
- [Age of Legal Capacity (Scotland) Act 1991, s.6(2) — a 29 February birthday falls on 1 March in common years](https://www.legislation.gov.uk/ukpga/1991/50/section/6)
