Skip to content

Guide

Age Calculation Methods: Western, Korean, and Why Forms Disagree

One person can be 29, 30, or 31 today — depending on which country's form they're filling in.

By Published

Ask three people what age you are today and you can get three different answers. A Western form says one number, a Korean uncle says another, a hospital intake form asks for “completed months” and gets a third. None of them is wrong; they’re measuring different things.

Western age: anniversaries since birth

The international standard, used by almost every passport office and HR system on the planet, is straightforward: your age is the number of complete years that have elapsed since your date of birth. You turn n on your nth birthday, not before.

The algorithm looks trivial — subtract years, adjust by one if the current month/day hasn’t reached the birth month/day — but the edge cases bite. Consider someone born on December 31, 1999. On December 31, 2025 in their local timezone they turn 26. In a system that stored the birth date as 2000-01-01T00:00:00Z (the local midnight converted to UTC from a UTC-5 timezone), the same person appears to turn 25 on that day — a full year off. This bug is the most common single source of incorrect ages in production software.

You can test your own date arithmetic with our age calculator — it shows years, months, and days, and pins the anniversary in your local timezone.

Korean age: shared cohort, New Year increment

Korean traditional age counts differently. A baby born on December 28 is “1” immediately at birth. Four days later, on January 1, that baby becomes “2” — alongside everyone else born in any prior year. Your Korean age depends only on the calendar year you were born in, not on whether your birthday has passed.

The formula is:

korean_age = (current_year - birth_year) + 1

That means a Western-age 29-year-old born in November is Korean-age 31 every January through October, and only briefly matches their international age in the weeks between their Western birthday and the next January 1.

South Korea formally moved to Western age for official purposes in June 2023, but Korean age is still the norm in conversation, and a third variant — “year age” (만 나이 minus one only in early year) — survives in some military and legal contexts.

East Asian traditional age

The broader East Asian system Korean age descends from is conceptually identical: count starts at 1 at birth, increment at lunar New Year. China, Vietnam, and Japan all used variants of this until the early 20th century, when Western age was legislated in. Japan’s transition happened in 1902 (Meiji-era Civil Code) and was reinforced by 1950 legislation; mainland China standardised Western age over the mid-20th century. Traditional age remains in horoscope and ritual contexts — when matching zodiac signs for weddings or funerals, for example — but rarely on official forms.

Years, months, and days: the exact computation

Many forms ask for age in a finer granularity: a child is “2 years, 4 months, 12 days”. The naive approach — divide total days by 365.25 — is wrong because months are not uniform. The correct algorithm is calendar-aware.

Given a birth date B and a reference date R, both in the same local calendar:

  1. Compute days = R.day − B.day.
  2. If days < 0, borrow from months. The number of days to borrow is the number of days in the month preceding R (not B). Decrement months by 1.
  3. Compute months = R.month − B.month.
  4. If months < 0, borrow 12 and decrement years by 1.
  5. Compute years = R.year − B.year.

The “days in the preceding month” choice matters. If you borrow from the birth date’s side, a child born February 1 and measured on March 31 is “1 month 30 days old” (March has 31 days, you borrowed 31 − 1 = 30). If you borrow from the reference side, you get “1 month 27 days old.” Pick a convention and stick to it.

For pure date subtraction (no breakdown), our date difference calculator gives both calendar-aware years/months/days and the raw total in days.

Context-by-context interpretation

Different domains need different answers from the same two dates:

  • Visa & immigration:Western age in years on the date of application. Embassies are strict — a passport showing “born 1996” plus a visa applied on a date before the 1996 birthday means age 29, not 30, even if the applicant uses Korean age socially. See our visa date guide.
  • Medical (paediatric): completed months until 2 years old, completed years afterwards. WHO growth charts use months for the first 24 months because variance is huge in early life.
  • Insurance (life):“age nearest birthday” — round to the closer anniversary, not floor. A 39-year-old who is 7 months past their birthday is rated as a 40-year-old.
  • HR / employment: usually Western age in years, but pension calculations may use age-in-months. Always confirm with the policy document.
  • Legal age of majority: Western age with jurisdiction-specific leap-day rules. UK common law says you reach majority on the day before your 18th birthday for some statutory purposes — yes, really.

Common bugs and how to avoid them

The February 29 problem

A person born February 29, 2000 has only had 6 real birthdays by 2024. Most software treats the anniversary as March 1 in non-leap years; some treats it as February 28. The UK Family Law Reform Act 1969 pins majority to March 1, but other statutes use February 28. Document your choice, then enforce it in tests with explicit fixtures.

Timezone slicing

Never call toISOString().slice(0, 10)to get the birth date for age math. That converts to UTC first, shifting the date by up to a day depending on the user’s offset. Use a timezone-aware library or compare the local Y-M-D components directly.

“X months” ambiguity

Is a 6-month subscription 6 calendar months (so January 15 to July 15) or 180 days? Half the industry uses each. State the unit on every invoice line.

Off-by-one at midnight

Some libraries treat the birthday as “at 00:00:00” — the user turns 30 the instant the clock ticks over. Others wait until end-of-day. The difference is only 24 hours but it matters for eligibility cutoffs.

Try the calculator

Run any two dates through our age calculator to see Western age, year-month-day breakdown, and the next anniversary at a glance. For a generic date-to-date gap (not anchored to a birthday) use the date difference calculator.

Bottom line

Western age is the safe default for any system that crosses borders. Korean and traditional East Asian age survive in cultural contexts and you should be aware of them — especially when interpreting self-reported ages from Korean speakers older than about 25. The year-month-day breakdown is calendar-aware: respect leap years, borrow correctly, and document which side you borrow from. And every age bug you’ll ever debug in production traces back to a timezone or a leap day. Test for both before shipping.

Frequently asked questions

Why does Korean age add a year on January 1?
Traditional Korean reckoning counts the calendar year you're in, not your birthday anniversary. Everyone born in the same calendar year shares the same Korean age, and that age increments on New Year's Day. South Korea legally adopted Western (international) age in June 2023 for almost all official purposes, but cultural usage of Korean age persists.
What's the right way to compute age in years, months, and days?
Borrow from the next-larger unit when needed. Subtract days first; if negative, borrow days from the previous month and decrement months. Then subtract months; if negative, borrow 12 and decrement years. The catch is what 'days in the previous month' means — most implementations use the calendar month before the end date, not before the birth date.
How should leap-day birthdays (February 29) be handled?
There's no universal rule. Common law jurisdictions usually treat the anniversary as March 1 in non-leap years; civil law jurisdictions often treat it as February 28. UK and New Zealand legislation pins it to March 1 for legal-age-of-majority purposes. Always document which rule your code uses.
Does age 'in months' mean calendar months or 30-day periods?
Calendar months in medical and HR contexts (a baby born March 15 turns 1 month old on April 15). 30-day periods in some scientific or financial contexts. The ambiguity matters: 6 calendar months can be 181-184 days. State which you mean.
Why does my age calculator show 'off by one' near the birthday?
Almost always a timezone bug. The birth date is stored as UTC midnight; the user is in UTC+9; 'today' on the client and 'today' on the server disagree by up to 24 hours. Compare dates in the user's local timezone, not by converting to UTC and slicing the ISO string.
Is East Asian age the same as Korean age?
Closely related but not identical. China, Vietnam, and Japan historically used similar systems (counted as 1 at birth, +1 each lunar New Year), but mainland China largely adopted Western age in the 20th century, and Japan formalised the switch in 1902 and again in 1950. Korean traditional age was the last broadly-used variant in everyday life.

Sources & references

Authoritative references cited by this piece. Verified by Buğra Sözeri on the dates shown and re-checked at every deploy.

Related

Published May 31, 2026