很多人翻老黄历、看生辰、定婚期,都会被这三个词绕进去,有人拿身份证上的日期当农历去排八字,结果全盘错位,这篇就把国历、农历、阴历的底层逻辑、换算方法和使用场景一次讲透,看完你自己就能判断哪个日子该用哪套系统。
1912年民国政府改用格里高利历,官方文件里把它称作“国历”,民间为了跟旧历区分,也叫“新历”“阳历”,1949年以后,大陆的正式说法是“公元纪年”,老百姓日常还是习惯喊公历、阳历,所以你在老契约、旧户口簿或者台湾地区的文书上看到“国历”两个字,直接对应公历日期,不需要任何换算。
公历的锚点是太阳,地球绕太阳一圈约365.2422天,取整365天,剩下的零头靠“四年一闰、百年不闰、四百年再闰”来补,它的月份跟月亮完全没关系,所以十五不一定月圆。
纯阴历的规则简单到粗暴:新月出现的那天是初一,满月在十五前后,一个朔望月平均29.53天,所以月份只能在29天和30天之间跳,一年12个月凑起来大约354天,比回归年少11天左右。
伊斯兰历就是典型的纯阴历,所以斋月每年往前挪十来天,几十年下来能把四季走一遍,中国农历如果也只按月相走,春节迟早会跑到夏天去,这显然不能指导农事。
这是最容易被混为一谈的地方,农历是阴阳合历:月份按朔望月定,年份却要跟着太阳走,办法就是插闰月——每隔两三年加一个闰月,把多出来的差额补回去,让正月始终落在冬末春初。
业内专家指出,我国农历的编算和颁行遵循国家标准《农历的编算和颁行》(GB/T 33661—2017),朔日、节气、闰月的确定都有严格算法,由紫金山天文台负责编算发布,换句话说,农历不是“阴历加个闰月”这么随意,它是一套精密的双坐标系统。

| 对比项 | 国历(公历) | 农历 | 阴历(纯阴历) |
|---|---|---|---|
| 参照物 | 太阳回归年 | 月亮+太阳 | 只有月亮 |
| 一年长度 | 365或366天 | 354天或384天 | 约354天 |
| 闰月 | 闰一天 | 闰一整月 | 无 |
| 节气 | 无 | 有二十四节气 | 无 |
| 典型代表 | 格里高利历 | 中国传统历法 | 伊斯兰历 |
查一下就能确认:2026年的春节落在公历2月17日,星期二,干支纪年为丙午年,2025年是乙巳年,2027年春节则提前到2月6日,前后差出十几天,看着毫无规律,其实全在置闰规则里。
规则叫“无中气置闰”,二十四节气分成十二个节气和十二个中气,中气包括雨水、春分、谷雨、小满这些,农历要求每个中气落在对应月份里,如果某个月从初一到月底都没赶上中气,这个月就定为闰月,名字沿用上一个月,闰六月”。
十九年里插入七个闰月,误差就能压到很小,这就是为什么你的农历生日和公历生日大概每十九年重合一次,有些人十九岁、三十八岁那年会收到两次“生日”,不是记错了。
这是命理圈最硬的规矩:排四柱用的是二十四节气,不是农历月份更不是公历月份。

所以一个2026年2月10日出生的人,虽然还没到春节,八字年柱已经是丙午,生肖也按马算,拿农历正月初一当分界线去排盘,整张盘都会错。
两套说法并存,命理、择日、术数领域按立春换生肖;民俗、日历、生肖邮票按正月初一换,你去做八字测算,师傅按立春;你去看春晚吉祥物,按春节,两者都没错,只是应用场景不同,别拿一套去否定另一套。
择日看的其实是干支和神煞,农历日期只是便于对照的“外包装”,翻老黄历的时候,你要盯的是这几项:
行业共识认为,嫁娶、搬家、开业这类大事,单看农历吉日不够,还得结合当事人的八字喜忌,同一本黄历上写着“宜嫁娶”,换成另一个属相的人可能就是“不宜”。
苹果手机进“设置—日历—备用日历”,打开“农历”选项,日历里就会在公历下方显示农历日期,安卓各大厂商的日历应用通常在“设置—显示农历”里,勾选即可,这是最省事的办法,适合日常查生日、对节气。
搜索“

要处理成百上千个日期,手工查不现实,Python 有个轻量库 lunardate,装上之后一行代码就能转换:
pip install lunardate
python -c "from lunardate import LunarDate; print(LunarDate.fromSolarDate(2026,2,17))"
输出结果就是农历2026年正月初一,反过来把农历转公历,用 LunarDate(2026,1,1).toSolarDate() 即可,要做节气精算,可以换用寿星天文历这类天文算法库,精度更高,但上手门槛也更高。
会,但间隔不固定,因为十九年七闰的调节,大部分人的农历生日和公历生日在19岁、38岁、57岁这些节点前后会重合或相差一天,想精确知道哪一年重合,直接用万年历查那一年的日期即可,不用记公式。
腊月是29天还是30天,取决于腊月初一的朔时刻和下一个朔时刻之间的间隔,朔望月平均29.53天,编算时取整就容易出现29天的“小月”,近年来连续若干年腊月都是小月,除夕就落在腊月二十九,这是正常的天文现象,跟历法出错无关。
我国户籍登记的出生日期一律使用公历,也就是国历,上世纪八十年代之前部分地区存在登记农历的情况,如今早已统一规范,所以给长辈排八字、算生肖时,如果老人说自己“身份证写的是农历”,一定要拿万年历倒推核对,否则年柱、月柱可能整体偏一个月,上文归纳自然对不上。