
上个月接了个私活,客户要做个黄历小程序,宜忌数据让我自己想办法。我第一反应:这不就是个日历 API 的事儿?
结果扒了三个版本的黄历,同一天,一个写“宜嫁娶”,一个写“忌嫁娶”。客户截图过来问我哪个是对的,我当场沉默。
那一刻我意识到,这玩意不是随机数生成器,真把它当玄学糊弄过去,这钱我不敢收。于是啃了一周《协纪辨方书》,把宜忌的生成逻辑拆了个底朝天。
先甩一个硬核事实:干支纪日从春秋时期到现在,连续跑了 2700 多年,一天没断过。 一个公元前就开始计数的计数器,历经几十个王朝、无数次历法改版,愣是没重启过。
老黄历所有宜忌都跑在这个“系统”上:年、月、日、时各配一组天干地支。八个字排出来,就是这天的唯一指纹。
月支不按农历初一走,按节气走。 这是新手最容易踩的坑——立春才换寅月,不是正月初一,你拿农历日期对黄历,永远差着几天。
为什么这么设计?因为农历是阴阳合历,月相管“月”,节气管“农时”,两套时钟并行。宜忌取的是节气这套,跟太阳实际位置挂钩。
十二神的名字先摆出来:建、除、满、平、定、执、破、危、成、收、开、闭。 就是个值班表,十二个值日神轮班,一天一位。
轮值规则一句话说清:月支与日支相同的那天定为“建日”,之后顺着地支往下排。 正月建寅,则寅日为建、卯日为除、辰日为满,一路排到丑日闭日。
那问题来了:十二天一轮,但两个节气之间隔了三十天半,多出来的天数怎么办?
逢“节”那天,硬重复前一天的值神一次。 对,就是重复一遍,强行对齐周期差。像不像你处理脏数据时打的补丁?古人没发明取模之外的算法,就用笨办法抹平了。
黄历上最凶的破日怎么来的?与月支相冲的那个日支,就是“月破”。 寅月遇申日,申冲寅,大事勿用——不是谁心情不好,是地支对冲的硬规则。
各值日粗略对应:建(开创)、除(除旧)、满(圆满)、平(平稳)、定(签约)、执(执行)、破(冲破,凶)、危(高危)、成(成事)、收(收尾)、开(开张)、闭(闭塞宜歇)。
这是全文最干的部分。黄历上“宜嫁娶、忌动土”这些字,来源是当天“值”了哪些神煞。
神煞分两拨:吉神如天德、月德、天赦、天医、三合、六合;凶神如月破、受死、往亡、天贼。每个神煞都绑着一张事件清单——天医宜求医问药,天赦百无禁忌,受死日诸事不宜。
生成逻辑伪代码化就四步:
1. 拿到当日干支 + 月支 + 年支;
2. 查表:今天值哪些吉神、哪些凶神;
3. 拉出各神煞绑定的事件清单,合并同类项;
4. 冲突时凶神优先裁剪,输出“宜 X 忌 Y”。
同一个日期输入,永远得到同样的宜忌输出。 这是纯函数,不是抽卡。
那市面上黄历为什么打架?流派不同——《玉匣记》、董公择日、各类民间通书,神煞取用规则有出入。等于同一个项目引了不同版本的依赖库,能不崩吗。
清朝皇室也被这事烦够了,乾隆年间敕编《协纪辨方书》,官方钦定一版规则集,收进《四库全书》。说人话:官方下场统一了 API 规范。
顺带一个有意思的规则:四离四绝。四立(立春、立夏、立秋、立冬)前一天叫“绝”,二分二至(春分、秋分、夏至、冬至)前一天叫“离”,这八天大事勿用。
理由是节气交替、气场不稳。翻译成工程师语言就是:发版窗口期,别上线。 这条我个人服气,古人至少给规则留了注释。
“黄道吉日”听着像修辞,其实是黑黄道十二神的轮值结果。黄道六吉神:青龙、明堂、金匮、天德、玉堂、司命;黑道六凶神:天刑、朱雀、白虎、天牢、玄武、勾陈。
排法依然规则化:以日支定位青龙落点,十二神按固定顺序排满十二地支。哪天黄道六神值班,哪天就是黄道日。
老择日先生有句口诀:“道远几时通达,路遥何日还乡。” 十二个字里带走之旁的正好六个——道、远、通、达、遥、还,对应黄道六神。这是把规则塞进十二个字的记忆术,考前突击专用,跟背八股文一个性质。
黄道吉日等于万事皆宜吗?不等于。黄道神值班只说明大方向顺,具体能不能嫁娶动土,还得回第三步的匹配表里再过一遍。
黄历的输出只到“天”吗?不是,还有一层时辰吉凶,大部分人根本不知道。
时辰吉凶由日支与时支的关系决定:三合、六合为吉;相冲、相刑、相害为凶。
举例,子日:丑时六合、申时辰时三合,这几个时辰吉;午时冲子,凶。翻车风险“理论上”集中在冲刑的时辰。
所以老黄历的完整输出其实是三维的:哪天(日)→ 干什么事(事)→ 几点(时辰)。 选日子只是粗筛,选时辰才是精排。
“吉时”也别神化。它的意思只是该时辰与当日干支关系友好,在这套规则体系内成立,仅此而已。当排期参考可以,当生死判官就过了。
拆到这你应该看明白了:老黄历是天文历法打底、术数规则推演、民俗语义标注的混合系统。工程上讲它逻辑自洽、输出确定;文化上讲,它是活了两千年的规则引擎。
择日这个行为求的是啥?说穿了,是消掉一块决策焦虑。婚期定了、日子“选过了”,不确定性少一块,这个心理功能是真实存在的,别管它包装成什么样。
我的态度:当文化遗产来拆解,越拆越有意思;当人生决策系统全信,等于把方向盘交出去。搬家看日子求心安,没问题;因为“诸事不宜”就不去医院,那是硬伤,赶紧醒。
真想验证这套规则的确定性?我把这套历法规则做成了在线工具,输入日期直接给出当天的干支、值神、宜忌和时辰吉凶:老黄历。数据按《协纪辨方书》的规则推演,你拿任意一天去和市面黄历对答案——对不上的地方,恰恰能看出对方用的是哪个流派。
1. 为什么不同黄历 App 同一天的宜忌不一样?
不是谁错了,是流派依赖不同。神煞取用规则各派有出入,等于同一个项目引了不同版本的库。想对标准答案,认《协纪辨方书》这个官方钦定版。
2. “诸事不宜”的日子,真的啥都不能干吗?
那天通常是月破、受死等凶神当值,规则层面指“大事勿用”——签约、嫁娶、开张这类。吃饭上班看病照常,别赌运气,也别走极端。
3. 老黄历的宜忌是随机编的吗?
恰恰相反,是高度确定性的规则推演,同样输入永远同样输出。真正随机的是各出版社抄了哪一版规则,而不是规则本身。
评论列表 (0条)