HomeChinese Calendar › Chinese Nominal Age Calculator (虚岁)

Chinese Nominal Age Calculator (虚岁)

Computes the traditional Chinese nominal age (虚岁 xusui: one at birth, plus one at every Chinese New Year) alongside the completed-years age (周岁 zhousui), and finds the lunar birthday (农历生日), its Gregorian date in the current lunar year, the days to the next lunar birthday and the next 本命年.

When to use

You need someone's 虚岁 for a Chinese context (family, temple, almanac conventions), or the date of a lunar birthday in a given year.

Do not use when: You need the ordinary age in years, months and days (use age), or the zodiac sign details (use chinese-zodiac).

Formula

虚岁 = lunar_year(reference_date) − lunar_year(birth_date) + 1; 周岁 = reference year − birth year, minus 1 if the birthday has not yet occurred; lunar birthday in year Y = Gregorian date of (birth lunar month, birth lunar day) in lunar year Y

Ages follow the lunar-year count of the Chinese calendar (New Year at 正月初一, UTC+8); a leap-month birthday is observed in the regular month unless the same leap month recurs, and day 30 falls back to day 29 in 29-day months (a note says when this happens). Traditional calendar/cultural reference calculation; not a prediction, medical, legal or financial advice.

Inputs

ParameterTypeUnitRequiredDescription
birth_datedateyesGregorian birth date (civil date in China Standard Time), 1900–2100.
reference_datedatedefault todayDate on which to evaluate the ages; defaults to the current UTC date.

Outputs

OutputTypeUnitDescription
nominal_age_xusuiintegersui1 at birth plus 1 for every Chinese New Year passed.
actual_age_zhousuiintegeryearsCompleted years since the Gregorian birthday.
lunar_birth_datestringBirth date in the lunar calendar, e.g. 一九九〇年四月廿三.
lunar_birthdaystringLunar month and day of birth, e.g. 四月廿三 (4th lunar month, day 23).
lunar_birthday_this_yeardateGregorian date of the lunar birthday in the lunar year that contains reference_date (regular-month or day-29 fallback noted when needed).
next_lunar_birthdaydateGregorian date of the next lunar birthday on or after reference_date.
days_to_next_lunar_birthdayintegerdays0 when reference_date is the lunar birthday.
current_lunar_yearstringLunar year containing reference_date with its ganzhi and animal.
is_benmingnian_nowbooleantrue when the current lunar year has the birth-year animal.
next_benmingnian_yearintegerNext lunar year after the current one with the same animal as the birth year.
zodiacstringAnimal of the lunar birth year.
year_ganzhi_birthstringSexagenary name of the lunar birth year with pinyin.

Example

Born 1990-05-17, as of 2026-09-24: {"birth_date":"1990-05-17","reference_date":"2026-09-24"}{"nominal_age_xusui":37,"actual_age_zhousui":36,"lunar_birthday":"四月廿三 (4th lunar month, day 23)","lunar_birthday_this_year":"2026-06-08","zodiac":"Horse (马)","year_ganzhi_birth":"庚午 (Gengwu)","next_benmingnian_year":2038}

Born 2026-01-01 (before CNY 2026-02-17), as of 2026-03-01: {"birth_date":"2026-01-01","reference_date":"2026-03-01"}{"nominal_age_xusui":2,"actual_age_zhousui":0,"zodiac":"Snake (蛇)"}

GET https://tttkmbb.com/api/v1/calculate/lunar-age?birth_date=1990-05-17&reference_date=2026-09-24

Machine access

Sources

FAQ

Why is 虚岁 sometimes two years more than my age?

You are 1 sui at birth and gain a year at each Chinese New Year rather than on your birthday, so shortly after New Year and before your birthday 虚岁 = 周岁 + 2.

What if I was born in a leap month or on the 30th?

The birthday is observed in the regular month of the same number (the leap month is used only in years where it recurs), and a 30th day becomes the 29th in a 29-day month; the output carries a note whenever a fallback is applied.

Related calculators