开放数据

中国生肖年份分界:1901 至 2100

决定出生年份属相的日期有两个:立春,以及正月初一。200 年的两个日期都在这里,要查哪一年,直接翻表。

覆盖范围

年份
1901-2100
行数
200
最近重建
2026-10-21
数据来源
香港天文台

数据读自香港天文台《公曆與農曆日期對照表》文本版,每年一个文件。天文台公布 1901 至 2100 年,本数据集覆盖同一区间,无缺口。

打开天文台索引页

200 年里的极端情况

两个日期完全重合的年份1905, 1924, 1943, 1992, 2038, 2087
间隔最宽1985, 2053 (+16)
间隔最窄1966 (-14)

下载

同一批数据两种格式。JSON 带来源说明与字段定义,CSV 是扁平表,方便用表格软件打开。

日期是怎么校验的

每一年都要先过三道独立校验,才进得了这个文件。哪一年没过,那一年就整条丢掉,不猜。

  1. 立春日期与正月初一日期,分别从英文表和中文表各读一遍,再要求两边完全一致。两表对不上的年份直接丢弃,不猜。
  2. 表头印的干支,用 (年份 - 1984) mod 60 重新推一遍,必须与表头一致。
  3. 结果与它取代的 1940–2030 版本做了回归比对:91 个重叠年份,零字段差异。

字段

JSON 的每一行是下面九个字段。CSV 是同样九列,干支与属相对被压成单格:庚辰、Rabbit|Dragon。

有一处限制要说明:这张表只到日。立春是一个时刻(2026 年 2 月 4 日 04:02、1987 年 2 月 3 日 23:15),出生在立春当天但早于这个时刻的人,年柱仍属上一年。表里记的是分界落在哪一天,不是一次出生落在它的哪一侧。

year该行所属的公历年份。
li_chun立春,开春的节气。ISO 日期,照表引用。
lunar_new_year正月初一。ISO 日期,照表引用。
gap_days正月初一减立春,单位为天。正数表示立春在前。
first_line哪个日期在前:li_chun、lunar_new_year 或 same_day。
ganzhi该年的干支,照表头引用。
animal立春所在行的属相,即该年在干支纪年里的属相。
animal_previous再往前一年的属相。
animals_between落在两个日期之间的生日可能同时带的两个属相。

抽样行

选了七行,覆盖两种先后顺序和同一天的情况。

年份立春正月初一相隔(天)属相
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

引用方式

不需要授权。按下面的格式引用,或直接链到 JSON。

GPTbazi《中国生肖年份分界 1901–2100》,据香港天文台《公曆與農曆日期對照表》整理。https://gptbazi.com/zodiac-dates

JSON 自带来源、字段定义与覆盖说明,脚本可以直接取用并署名,不需要读这一页。

这份数据集对应的文章按出生年月查生肖资料来源

你已经知道自己的生日。 这就够了。

读我的命盘 免费排盘 · 可问紫衡 3 次