Chinese age calculator. Compute 虚岁 (nominal: born=1, +1 each lunar new year) + 实岁 (actual/Gregorian-anniversary years).
Chinese Age Calculator (Nominal & Actual)
How to use
Enter birth date (Gregorian)
Pick a Gregorian birth date. No lunar input needed — the tool converts internally.
Pick an as-of date
Defaults to today. Can also compute future dates (e.g. "when am I 60 in nominal years?").
Read both ages
You get 虚岁 (nominal) + 实岁 (actual) side-by-side. 虚岁 is almost always 1 or 2 years more — depending on whether your birthday or Lunar New Year came more recently.
Verify lunar dates
Output also shows both dates in lunar terms (年干支 + month + day) — handy for cross-checking with relatives' traditional records.
虚岁 and 实岁: two ways of counting age
实岁 (full age, 周岁) counts Gregorian birthdays: 0 at birth, +1 on each birthday, the same as "age" in English. 虚岁 (nominal age) has two rules: you are 1 at birth, and you add a year at every Lunar New Year (the first day of the first lunar month), whatever your birthday.
When 虚岁 goes up
Only at Lunar New Year. A baby born on 1 January 2026 is 2 in 虚岁 on 17 February 2026, that year's New Year, while still 0 in 实岁. In the Hong Kong Observatory's tables for 1901–2100, New Year falls as early as 21 January and as late as 20 February, so the day 虚岁 goes up moves from year to year.
How big is the gap?
It depends on which came more recently. If New Year has passed but your birthday has not, the gap is 2; once your birthday has passed, it is 1. On a handful of days it is 0 or 3: when a birthday falls in January or February and that year's New Year lands much earlier or later than it did in the birth year, the two swap order for a few days. Counting every birth date from 1926 to 2025 on every day of 2026–2030, a gap of 0 comes up about once in 3,000 cases and a gap of 3 about once in 5,600. The tool calculates from the actual dates, so it shows those days as they are.
How the dates are checked
Lunar dates are computed from astronomy at 120° east (UTC+8) and compared day by day with the Hong Kong Observatory's Gregorian–lunar tables: across 1901–2100 the only difference is thirty days of the fourth month of 1906. That is why the tool accepts dates from 1901 to 2100.
Born in January, two in 虚岁 by February
A baby born on 1 January 2026 is 2 in 虚岁 on 17 February 2026, Lunar New Year, at less than seven weeks old.
A child born on New Year's Eve is 2 in 虚岁 the next morning; one born on New Year's Day is still 1. A day apart at birth, a year apart in 虚岁.
In the Hong Kong Observatory's tables for 1901–2100, Lunar New Year is as early as 21 January (1966) and as late as 20 February (1920).
A 60th birthday counted in 虚岁 falls at 58 or 59 in 实岁, because the two usually differ by 1 or 2.
Counting every birth date from 1926 to 2025 on every day of 2026–2030, the gap is 1 in 50.6% of cases and 2 in 49.3%.
In the same count a gap of 0 comes up about once in 3,000 and a gap of 3 about once in 5,600, all for people born in January or February.
1 January does nothing to 虚岁: it only goes up on the first day of the lunar year.
Frequently Asked Questions
-
At Lunar New Year, the first day of the first lunar month. 1 January has no effect.
-
Still 1, unless that day is Lunar New Year.
-
The New Year's Eve baby: on New Year's Day it is 2, while the New Year's Day baby is 1.
-
When a birthday falls in January or February and that year's New Year is much earlier or later than in the birth year, the birthday and New Year swap order for a few days. It is rare, and the tool shows those days as they are.
-
120° east (UTC+8), the standard for the Chinese calendar. Results are checked against the Hong Kong Observatory's tables.
-
Both dates must fall between 1901 and 2100, the span checked day by day against the Hong Kong Observatory.
-
No. Everything is calculated in your browser and nothing is sent to a server.
-
Possibly both: 68 is 实岁, and 虚岁 is usually 1 or 2 more, so 69 or 70. Enter the birth date and the tool shows both.
Method & sources
How it computes
实岁 = completed Gregorian birthdays; 虚岁 = 1 at birth plus 1 at each Lunar New Year (first day of the first lunar month) after birth. Both from LunisolarKernel.ages(); lunar dates computed at UTC+8 and checked day by day against HKO's Gregorian-Lunar tables 1901-2100 (one 1906 month differs). Dates accepted from 1901 to 2100.
What this tool implements
- Engine moved from RecaLunar (untested) to LunisolarKernel.ages(). The library's Lunar New Year dates matched HKO in all 200 years, so no displayed age changes; the page simply no longer carries its own copy of the rule. Range corrected from 1900-2100 to 1901-2100.
- Re-measured on the kernel: for every birth date 1926-2025 on every day of 2026-2030 the gap is 0 about once in 2,970 cases and 3 about once in 5,640 (the page said about 1 in 4,000 each), all for January-February births. Removed as unsourced: Western Zhou origins, PRC registration history, Korean, Japanese and Vietnamese age-law claims (statutes not read), insurance and paediatric practice, a Hokkien/Teochew Lichun rule, and an 'internet wisdom' pull-quote.
Sources
- Hong Kong Observatory. Gregorian-Lunar Calendar Conversion Tables, 1901-2100: Lunar New Year as early as 21 January (1966) and as late as 20 February (1920). https://www.hko.gov.hk/en/gts/time/conversion.htm
Pick up where you left off
Stored only in this browser — never sent to our servers.