Open data

Chinese zodiac year boundaries, 1901 to 2100

Two dates decide which animal a birth year carries: Li Chun, the solar term that opens spring and starts the year pillar in the branch record, and the first day of the first lunar month. Both are here for all 200 years, so any year can be looked up directly.

Coverage

Years
1901-2100
Rows
200
Last rebuilt
2026-10-21
Source
Hong Kong Observatory

Read from the Hong Kong Observatory's Gregorian-Lunar Calendar Conversion Table, text edition, one file per year. The Observatory publishes 1901 to 2100; this dataset covers the same span with no gaps.

Open the Observatory index

What the 200 years show

Years with no gap at all1905, 1924, 1943, 1992, 2038, 2087
Widest window1985, 2053 (+16)
Narrowest window1966 (-14)

Download

The same rows in two shapes. The JSON carries the source block and the field definitions; the CSV is flat, for spreadsheets.

How the dates were checked

Every year passed three independent tests before it entered the file. A year that failed one was dropped rather than guessed at.

  1. The Li Chun date and the lunar new year date were parsed from the English table and from the Chinese table separately, then required to match exactly. A year where the two tables disagree is dropped rather than guessed.
  2. The stem-branch pair printed in each table header was re-derived with (year - 1984) mod 60 and required to agree with the header.
  3. The result was regressed against the 1940-2030 version this file replaces: 91 overlapping years, zero field differences.

Fields

The JSON rows carry the nine fields below. The CSV has the same nine columns, with the stem-branch pair as one string and the animal pair joined by a pipe: 庚辰, Rabbit|Dragon.

One limit worth stating: this table has day resolution only. Li Chun is an instant — 04:02 on 4 February 2026, 23:15 on 3 February 1987 — so a birth earlier on the Li Chun date still belongs to the previous year pillar. The table records which day the boundary falls on, not which side of it a birth sits.

yearGregorian year the row belongs to.
li_chunLi Chun (立春), the solar term that opens spring. ISO date, as published.
lunar_new_yearFirst day of the first lunar month (正月初一). ISO date, as published.
gap_daysLunar new year minus Li Chun, in days. Positive means Li Chun came first.
first_lineWhich boundary comes first: li_chun, lunar_new_year, or same_day.
ganzhiThe year's stem-branch pair (干支), as printed in the table header.
animalThe animal on the Li Chun line — the year's animal in the branch record.
animal_previousThe animal one year earlier.
animals_betweenThe two animals a birthday between the boundaries can carry.

Sample rows

Seven years chosen to show both orderings and the same-day case.

YearLi ChunLunar new yearGap (days)Animals
19011901-02-041901-02-19+15Rat / Ox
19121912-02-051912-02-18+13Pig / Rat
19431943-02-051943-02-050Horse / Goat
19841984-02-041984-02-02-2Pig / Rat
19921992-02-041992-02-040Goat / Monkey
20262026-02-042026-02-17+13Snake / Horse
21002100-02-042100-02-09+5Goat / Monkey

Citing this dataset

No permission needed. Use this shape, or link the JSON directly.

GPTbazi, Chinese zodiac year boundaries 1901-2100, derived from the Hong Kong Observatory Gregorian-Lunar Calendar Conversion Table. https://gptbazi.com/zodiac-dates

The JSON carries its own source block, field definitions and coverage note, so a script can attribute it without reading this page.

The article this dataset was built forLook up your sign by birth year and monthSources

You already know your birthday. That’s all it takes.

Read my chart Free to generate · Ask Ziheng 3 questions