English
This page is available in English
The whole page — instructions, buttons and results.
Switch to English免费公历↔农历双向转换器。返回完整农历日期(干支年月日)、生肖、纳音。支持闰月。
公历农历转换
使用方法
选择转换方向
点击「公历 → 农历」或「农历 → 公历」标签页。默认为公历→农历。
输入日期
填入年、月、日数字。支持公历 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 丁未都是「天河水」。
东南亚华人的用法
新加坡、马来西亚、印尼、菲律宾的华人社群仍按农历过春节、元宵、端午、中元、中秋、重阳,这些日子每年落在不同的公历日。本工具可以查某年春节是哪天(农历→公历,输入 正月初一),也可以把长辈的农历生日换成公历。
有两个立春的农历年,恰好就是有闰月的那 73 年
按香港天文台对照表,1901 至 2099 年的农历年里,73 年有两个立春、73 年没有立春、53 年有一个。有两个立春的,正是有闰月、长达 13 个月的那 73 年。
立春并不一定在正月:200 年里有 103 年的立春落在腊月。2026 年的立春(2 月 4 日)是腊月十七,春节要到 2 月 17 日。
1901 至 2100 年的 73 个闰月只出现在二月到十一月:闰四月、闰五月最多(各 14 次),闰九月(2014)、闰十月(1984)、闰十一月(2033)各一次,没有闰正月和闰腊月。
香港天文台在对照表页面上写明:合朔或节气接近午夜时,表中日期可能差一天,并点名 2057 年 9 月 28 日、2089 年 9 月 4 日、2097 年 8 月 7 日的新月。本工具算出这三次合朔都在午夜前 3 分钟之内,遇到这类日子会提示。
这类「差一分钟」并不罕见:1901 至 2100 年间开始的 2,474 个农历月里,有 52 个的初一由距午夜不足 15 分钟的合朔决定。
冬至在公历上几乎不动:1901 至 2100 年,香港天文台表中的冬至都落在 12 月 21 日至 23 日之间。它所在的那个农历月,永远是十一月。
农历年按正月初一换年,所以 2026 年 1 月 15 日出生的孩子,农历是乙巳年冬月廿七,属蛇而不属马。这一天也在 2026 年立春之前,按立春算同样属蛇。
月长要逐月看:香港天文台表中,大月、小月有时连排,最多连续 4 个大月或 3 个小月。所以「农历每月 29.5 天,大小月交替」只是近似。
2025 年闰六月从 7 月 25 日开始,只有 29 天。按本工具查,下一个闰六月要到 2036 年。闰月生日怎么过,习俗各地不同,工具只告诉你下一次在哪年。
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.
资料来源
- Hong Kong Observatory. 公曆與農曆對照表 / Gregorian-Lunar Calendar Conversion Table, 1901-2100, one file per year (all 200 fetched 2026-10-19): https://www.hko.gov.hk/tc/gts/time/conversion.htm — files at https://www.hko.gov.hk/tc/gts/time/calendar/text/files/T{YYYY}c.txt
- Hong Kong Observatory. 今夕是何年? — "素以正月初一香港標準時間零時零分作為農曆年的干支交替時刻", and that the 2017 national standard 《農曆的編算和頒行》 agrees: https://www.hko.gov.hk/tc/education/astronomy-and-time/time-servi…
- Hong Kong Observatory. 二十四節氣 times (2026 file shown; 立春 04:02): https://www.hko.gov.hk/en/gts/astronomy/data/files/24SolarTerms_2…
- Academia Sinica. 兩千年中西曆轉換 — for dates before 1901, which this page does not convert: https://sinocal.sinica.edu.tw/
可能导致本页过时的因素
- None at runtime: both kernels run in the browser and nothing the reader types is sent anywhere.
已节选——本工具的完整审阅记录长于上列。
Pick up where you left off
Stored only in this browser — never sent to our servers.