免费公历↔农历双向转换器。返回完整农历日期(干支年月日)、生肖、纳音。支持闰月。

RT-CHN-010 · Chinese Culture & Almanac
你的浏览器版本过旧,此工具的交互功能无法运行。请更新至 Safari 13.1、Chrome 或 Edge 80、Firefox 74 或以上版本。

公历农历转换

—
📅 研究资料截至 2026年10月19日 · 来源: Hong Kong Observatory 公曆與農曆對照表 1901–2100 (every day compared), its 二十四節氣 times and its note on the 正月初一 year boundary; Meeus, Astronomical Algorithms 2nd ed.
标准、已发表的公式与参考数据会随时间修订 — 依据这些数字行事前,请对照当前的权威来源核实。
Advertisement
After results · AD-W1 Responsive

使用方法

选择转换方向

点击「公历 → 农历」或「农历 → 公历」标签页。默认为公历→农历。

输入日期

填入年、月、日数字。支持公历 1901-01-01 至 2100-12-31,即香港天文台对照表的范围。「今天」按新加坡时间的当日填入;在农历→公历页,它填入今天的农历日期。

闰月勾选(仅农历→公历)

输入框下方会显示该农历年有没有闰月、闰几月。只有勾选「闰月」且该年确有这个闰月时才会转换;问一个不存在的闰月,工具会告诉你那一年真正的闰月,而不是悄悄换成平月。

查看结果

结果显示公历日期与星期、农历日期、生肖、干支(年月日)、纳音,逢节气或节日也会标出。若这一天是「节」,干支月在当天某一时刻更替,结果会写出时刻和前后两组干支。

中国农历:月亮定月,太阳定年

中国农历是阴阳合历:每个月从合朔(新月)那一天开始,月份的编号却由太阳决定——含冬至的月是十一月,没有「中气」的那个月就是闰月。本工具不查表,而是在浏览器里直接推算:节气由太阳视黄经算出,合朔依 Meeus《天文算法》第 49 章,闰月依「无中气置闰」,在东八区(UTC+8,即香港天文台编表所用的时间)取日界。

算完再逐日核对:把 1901 至 2100 年香港天文台《公历与农历日期对照表》的 73,049 天逐一比较,只有 1906 年四月的 30 天不同——那个月的合朔落在午夜前 7 分 49 秒,当年钦天监的推步与现代算法分在午夜两侧,工具会在那一天标出。

什么是闰月

香港天文台的表里,1901 至 2100 年共 2,473 个完整农历月:1,312 个大月(30 天)、1,161 个小月(29 天),平均 29.53 天,正是一个朔望月。十二个这样的月比一个太阳年短约 11 天,所以两百年里插了 73 个闰月,平均约十九年七闰——但这只是平均,并非固定周期。闰哪个月要看哪个月恰好没有中气:例如 2023 年闰二月、2025 年闰六月、2033 年闰十一月。

干支、生肖、纳音

年有两种分界。农历年和生肖按正月初一换年:香港天文台「素以正月初一香港标准时间零时零分」为干支交替时刻,并说明 2017 年发布的国家标准《农历的编算和颁行》与此一致。干支历的年月则按立春和各「节」更替,八字命理多用这一套。两者在立春与春节之间会差一年:2026 年 2 月 10 日已过立春,干支是丙午年庚寅月,但农历仍是乙巳年腊月廿三。本工具两个都写出来。纳音按六十甲子配对,每两年共用一个,如 2026 丙午、2027 丁未都是「天河水」。

东南亚华人的用法

新加坡、马来西亚、印尼、菲律宾的华人社群仍按农历过春节、元宵、端午、中元、中秋、重阳,这些日子每年落在不同的公历日。本工具可以查某年春节是哪天(农历→公历,输入 正月初一),也可以把长辈的农历生日换成公历。

Advertisement
After how-to · AD-W2 Responsive

有两个立春的农历年,恰好就是有闰月的那 73 年

01

按香港天文台对照表,1901 至 2099 年的农历年里,73 年有两个立春、73 年没有立春、53 年有一个。有两个立春的,正是有闰月、长达 13 个月的那 73 年。

02

立春并不一定在正月:200 年里有 103 年的立春落在腊月。2026 年的立春(2 月 4 日)是腊月十七,春节要到 2 月 17 日。

03

1901 至 2100 年的 73 个闰月只出现在二月到十一月:闰四月、闰五月最多(各 14 次),闰九月(2014)、闰十月(1984)、闰十一月(2033)各一次,没有闰正月和闰腊月。

04

香港天文台在对照表页面上写明:合朔或节气接近午夜时,表中日期可能差一天,并点名 2057 年 9 月 28 日、2089 年 9 月 4 日、2097 年 8 月 7 日的新月。本工具算出这三次合朔都在午夜前 3 分钟之内,遇到这类日子会提示。

05

这类「差一分钟」并不罕见:1901 至 2100 年间开始的 2,474 个农历月里,有 52 个的初一由距午夜不足 15 分钟的合朔决定。

06

冬至在公历上几乎不动:1901 至 2100 年,香港天文台表中的冬至都落在 12 月 21 日至 23 日之间。它所在的那个农历月,永远是十一月。

07

农历年按正月初一换年,所以 2026 年 1 月 15 日出生的孩子,农历是乙巳年冬月廿七,属蛇而不属马。这一天也在 2026 年立春之前,按立春算同样属蛇。

08

月长要逐月看:香港天文台表中,大月、小月有时连排,最多连续 4 个大月或 3 个小月。所以「农历每月 29.5 天,大小月交替」只是近似。

09

2025 年闰六月从 7 月 25 日开始,只有 29 天。按本工具查,下一个闰六月要到 2036 年。闰月生日怎么过,习俗各地不同,工具只告诉你下一次在哪年。

10

1929 年以前,本工具按北京地方平时(东经 116°25′)取日界,1929 年起用东八区。这样推算出的 1901 至 2100 年 200 个春节,与香港天文台对照表全部一致。

常见问题

  • UTC+8,即香港天文台编表所用的时间;1929 年以前按北京地方平时。新加坡、马来西亚、香港、台湾都在 UTC+8,所以农历日期相同。即使你在欧美使用,显示的仍是 UTC+8 的农历日。越南按 UTC+7 编算自己的阴历,个别日子会因此落在不同的一天,本工具不计越南历。

  • 不能。范围定在 1901-01-01 至 2100-12-31,正是香港天文台对照表覆盖的两百年;范围外没有可核对的权威表,工具宁可拒绝也不给一个未经核对的答案。更早的日期可查中央研究院《两千年中西历转换》(sinocal.sinica.edu.tw)。

  • 习俗各地不同。常见做法:(1) 有闰月的年份过闰月,其余年份过平月;(2) 一律按平月;(3) 有闰月的年份过两次。本工具不替你决定:在「农历 → 公历」页勾选闰月后,结果会列出下一个同名闰月在哪一年。

  • 立春与春节之间,两种换年规则给出不同答案。香港天文台按正月初一换年;八字命理多按立春换年。工具两种都写出,先写农历年的。

  • 年柱按立春、月柱按各「节」、日柱按六十甲子连续计日(1949 年 10 月 1 日为甲子日)。三柱都按同一套规则,所以年和月总是相配。逢「节」那天,干支月在交节时刻更替,结果写出时刻;表中的干支按当天正午计。时柱需要出生时间,请用八字排盘工具。

  • 佛历和道历是纪年方式,各有自己的起算年;不少佛教、道教节日按农历的月日来过。本工具只换算农历与公历,不计佛历或道历年数。

  • 生肖按年分(12 年一轮);星座按公历生日落在哪一段分(一年 12 段)。两套体系互不相干。

  • 不存储。所有转换在浏览器本地完成,不向服务器发送你输入的日期。

  • 1901 至 2100 年逐日对照香港天文台表,73,049 天里只有 1906 年四月那 30 天不同(合朔在午夜前 7 分 49 秒)。节气日期 1914 年起与香港天文台表全部一致;1909 至 1913 年有 6 个节气差一天,都是按北京地方平时落在午夜前几分钟。初一或节气接近午夜时,结果会提示。

  • 选「农历 → 公历」,输入「年 = 目标年,月 = 1,日 = 1」即可(春节即农历正月初一)。例如 2027 年春节是 2 月 6 日。

方法与来源

计算方式

Computed, not looked up (LunisolarKernel): solar terms from the Sun's apparent longitude, new moons per Meeus ch. 49, leap months by the no-major-term rule, day boundary UTC+8 (Beijing mean time before 1929). LunarDateViewsKernel adds the refusals and the two year rules: 干支 year and months from 立春 and each 节, lunar year and 生肖 from 正月初一. Checked against every day of HKO's 1901-2100 tables.

本工具依据的标准

  • The Chinese calendar is lunisolar: each month starts on the day of a new moon, and the months are numbered by the sun — the month holding the winter solstice is the eleventh, and a month with no major solar term is the leap month. The page computes this rather than reading a packed table.
  • Validated against the Hong Kong Observatory's 公曆與農曆對照表, all 200 yearly files 1901-2100: of the 73,030 days from 1901-01-20 to 2100-12-31, every one agrees except the 30 days of 1906 四月, whose new moon falls 7m49s before midnight on Beijing local mean time; solar-term dates agree for every year from 1914.
  • Two year boundaries, both shown. The lunar year and its zodiac animal turn at 正月初一, the rule HKO states for its own tables; the 干支 year and months turn at 立春 and each 节, so the year, month and day pillars printed together always belong together.
  • Leap months are handled explicitly rather than silently collapsed into the base month, because 閏四月 and 四月 are different months and a birthday in one is not a birthday in the other. A leap month the year does not have, or a 30th in a 29-day month, is refused with the year's real leap month or the month's length.
  • Range 1901-01-01 to 2100-12-31, the span of HKO's tables; outside it the page refuses rather than answer unchecked. Month starts and terms within 15 minutes of midnight are flagged, as HKO itself flags 2057-09-28, 2089-09-04 and 2097-08-07.
  • Conversion is deterministic and offline: the same input always returns the same date, and nothing about your dates leaves the browser.

资料来源

可能导致本页过时的因素

  • None at runtime: both kernels run in the browser and nothing the reader types is sent anywhere.

已节选——本工具的完整审阅记录长于上列。

Advertisement
Pre-footer · AD-W3 728 × 90