# 公历农历转换器与生肖年查询

> 将任意公历日期转换为中国农历（阴阳历）。查看农历月份和日期、闰月、天干地支纪年以及你的生肖属相，一键搞定阳历转农历。

- **Category:** 日期与时间
- **Interactive calculator:** https://youcalc.com/zh/date-time/chinese-calendar-converter/
- **Price:** Free, no sign-up required

## Overview

这款转换器可将任意公历（西历）日期换算为其在传统中国农历中对应的日期，并告诉你该年的生肖。中国农历是阴阳合历：每个月以新月开始，因此一个农历月为 29 或 30 天，十二个农历月比太阳年约少十一天。为了追上太阳年，大约每三年插入一个第十三个「闰月」，让月份与季节和二十四节气保持一致。与西历不同，中国的年份不是简单的数字——它由六十甲子（十天干配十二地支）和十二生肖之一来命名：鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪。输入一个日期——生日、纪念日或今天——即可读出农历的月与日、是否为闰月、干支纪年的名称以及生肖。默认显示今天的日期，因此它也可用作「今天农历是几号」和「我的生肖是什么」的查询工具。

## How to read your result

标题会显示你所输入公历日期对应的生肖和农历日期：农历月份编号（1–12）、当月的日期，以及该年的干支名称，同时用拼音（例如「Jiǎ-Chén」）和汉字（甲辰）标注。如果该日期落在插入的闰月中，结果会予以说明——闰月沿用前一个月的编号（「闰四月」紧跟在普通四月之后），而不是另起新名。两种历法中星期几是相同的真实星期，因为它们描述的是同一个 24 小时的民用日。年初交替时有一点需要注意：生肖不在 1 月 1 日更替，而是在农历春节——农历正月初一——更替，春节落在 1 月 21 日至 2 月 20 日之间。因此 1 月的生日可能仍属于前一个生肖年。该工具以对应的（「相关」）公历年来标注年份，让你始终清楚该农历年落在哪个太阳年。

## Method

每一次转换都以儒略日数（JDN）为枢纽——这是一种独立于任何历法的连续日数计数。输入的公历日期先用标准的民用日期公式化为其 JDN，然后通过 Intl.DateTimeFormat（"chinese" 历法）所提供的 ICU 阴阳历数据，将该 JDN 在中国农历中读出。ICU 提供农历月份（对于插入的闰月带有「bis」标记，本工具以 isLeapMonth 形式呈现）、当月的日期，以及该农历年对应的「相关」公历年。干支纪年名称和生肖则由该相关年份通过算术推导得出，以公元 4 年 = 甲子（位于循环第 1 位，鼠年）为锚点：天干序号为（年份 − 4）mod 10，地支（及生肖）序号为（年份 − 4）mod 12，在六十甲子循环中的位置为（年份 − 4）mod 60 + 1。此推导已针对 1950–2050 年与 ICU 直接给出的年名进行了验证。由于中国年份在 Intl 中没有数字形式，转换在设计上是单向的（公历 → 农历）。「今天」在页面加载后按你所在时区的本地民用午夜计算，因此默认日期无论你身在何处都正确，而无需在页面中写死构建时的日期。

## Example

- **Setup:** 将 2024 年 2 月 10 日（公历）换算为中国农历。
- **Result:** 2024 年 2 月 10 日是农历春节——正月初一——它开启了甲辰年，即龙年。往回退一天到 2024 年 2 月 9 日，你仍处在旧年：那是癸卯（兔年）农历十二月三十。从兔到龙这一天之差，正是新年分界线的体现。作为对比，2000 年 1 月 1 日换算为己卯（兔年）农历十一月二十五：因为 2000 年的农历春节要到 2 月 5 日才到来，2000 年的第一天仍属于前一个兔年，而非龙年。

## Frequently asked questions

### 什么是生肖和六十甲子（干支）循环？

每个中国年份都以十二种循环往复的生肖之一命名——鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪——它们取自十二「地支」。生肖再与十「天干」之一搭配，由于 10 和 12 有公因数，两个循环每 60 年才重新对齐一次。这个六十甲子循环为每一年赋予一个两部分组成的名称，如甲辰；2024 年是龙年，下一个龙年是 2036 年。

### 农历春节是什么时候，为什么每年日期都不同？

农历春节是正月初一，始于冬至后的第二个新月。由于农历相对太阳（公历）年会逐渐偏移，日期会前后浮动：可能落在 1 月 21 日至 2 月 20 日之间的任何一天。2024 年是 2 月 10 日，2025 年是 1 月 29 日。生肖在这一天更替，而非在 1 月 1 日——所以 1 月底或 2 月初的日期可能仍属于前一个生肖年。

### 中国农历中的闰月是什么？

十二个农历月共约 354 天，比 365 天的太阳年大约少十一天。为防止月份与季节脱节，大约每三年插入一个额外的月份——闰月（19 年中共七次）。闰月不会另起新名；它沿用其前一个月的编号，所以你会看到例如「闰二月」紧接在普通二月之后。当你的日期落在闰月中时，本转换器会予以标记。例如，2023 年 3 月 22 日就落在兔年的闰二月。

### 为什么本工具只能从公历→农历转换，而不能反向？

此处农历是通过系统的国际化数据（Intl）解析的，它将年份报告为循环的干支名称——如「甲辰」——完全没有数字年份部分。因此一个普通的「年/月/日」农历日期无法被唯一确定：同样的农历月与日在每个 60 年循环中都会重现，而闰月又会重复使用月份编号，所以引擎没有可靠的方法将其反推回单一的公历日。正因如此，本转换器只能单向运行，即从公历日期转换为对应的农历日期。若要反向转换，请查阅已出版的对照表，如香港天文台的换算表。

## Related calculators

- [希伯来日期转换器——公历转希伯来历](https://youcalc.com/zh/date-time/hebrew-date-converter/)
- [伊斯兰历转换器——伊斯兰历 ⇄ 公历](https://youcalc.com/zh/date-time/hijri-date-converter/)
- [8 种历法年龄计算器——多历法日期转换器](https://youcalc.com/zh/date-time/multi-calendar-age/)
- [伊斯兰历年龄计算器——按伊斯兰历算年龄](https://youcalc.com/zh/date-time/hijri-age/)

## Sources

- https://www.hko.gov.hk/en/gts/time/conversion.htm
- https://en.wikipedia.org/wiki/Chinese_calendar

---

Interactive version: https://youcalc.com/zh/date-time/chinese-calendar-converter/ · From YouCalc — https://youcalc.com
