# 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 本命年.

- Calculator id: `lunar-age` · Category: Chinese Calendar (`lunar`) · Tool name: `calculate_chinese_nominal_age`
- Canonical page: https://tttkmbb.com/lunar/lunar-age · This document: https://tttkmbb.com/lunar/lunar-age.md · JSON definition: https://tttkmbb.com/lunar/lunar-age.json

## Purpose

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 本命年.

**Use when:** 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).

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `birth_date` | date |  | required | Gregorian birth date (civil date in China Standard Time), 1900–2100. |
| `reference_date` | date |  | optional, default "today" | Date on which to evaluate the ages; defaults to the current UTC date. |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `nominal_age_xusui` | integer | sui | 1 at birth plus 1 for every Chinese New Year passed. |
| `actual_age_zhousui` | integer | years | Completed years since the Gregorian birthday. |
| `lunar_birth_date` | string |  | Birth date in the lunar calendar, e.g. 一九九〇年四月廿三. |
| `lunar_birthday` | string |  | Lunar month and day of birth, e.g. 四月廿三 (4th lunar month, day 23). |
| `lunar_birthday_this_year` | date |  | Gregorian date of the lunar birthday in the lunar year that contains reference_date (regular-month or day-29 fallback noted when needed). |
| `next_lunar_birthday` | date |  | Gregorian date of the next lunar birthday on or after reference_date. |
| `days_to_next_lunar_birthday` | integer | days | 0 when reference_date is the lunar birthday. |
| `current_lunar_year` | string |  | Lunar year containing reference_date with its ganzhi and animal. |
| `is_benmingnian_now` | boolean |  | true when the current lunar year has the birth-year animal. |
| `next_benmingnian_year` | integer |  | Next lunar year after the current one with the same animal as the birth year. |
| `zodiac` | string |  | Animal of the lunar birth year. |
| `year_ganzhi_birth` | string |  | Sexagenary name of the lunar birth year with pinyin. |

## 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.

## Data Sources

- East Asian age reckoning (Wikipedia) — https://en.wikipedia.org/wiki/East_Asian_age_reckoning (reference, retrieved 2026-09-24)
- Chinese calendar (Wikipedia) – calendar rules as standardised in GB/T 33661-2017 — https://en.wikipedia.org/wiki/Chinese_calendar (reference, retrieved 2026-09-24)
- Hong Kong Observatory – Gregorian-Lunar Calendar Conversion Table — https://www.hko.gov.hk/en/gts/time/conversion.htm (government, retrieved 2026-09-24)

Data freshness: `daily` (max_age_seconds 86400). Depends on the current date.

## API

- `GET https://tttkmbb.com/api/v1/calculate/lunar-age?birth_date=…`
- `POST https://tttkmbb.com/api/v1/calculate/lunar-age` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/lunar-age · OpenAPI operationId `calculate_chinese_nominal_age` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "lunar-age", "inputs": {…}}`

## Example

- Born 1990-05-17, as of 2026-09-24: inputs `{"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: inputs `{"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
```

## Limitations

You need the ordinary age in years, months and days (use age), or the zodiac sign details (use chinese-zodiac). 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. All values are computed from the formula above; no measurement or live data is involved.

## 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

- [Age Calculator](https://tttkmbb.com/everyday/age.md) — Exact age in years, months and days by the Gregorian calendar.
- [Chinese Zodiac Calculator (生肖)](https://tttkmbb.com/lunar/chinese-zodiac.md) — Zodiac sign, element and 本命年 list for the birth date.
- [Lunar Calendar Converter (农历)](https://tttkmbb.com/lunar/lunar-calendar-converter.md) — Full lunar date of the birth or reference date.
