历法、年界、换日与交节:四种边界分别处理
某个时刻在民用日历里属于哪一天,和某种术数把它归入哪一年、哪一月、哪一日,是关联但不同的问题。历法负责日期表达;方法规则负责分段归属。应先找到同一时刻,再逐层应用所选边界。
公历与儒略历
儒略历通常以四年一闰安排年长;格里高利历在整百年增加限制,能被 400 整除的整百年仍闰。以通常规则为例,1900 年在儒略历为闰年,在格里高利历为平年。相同“年、月、日”文字在两个历法中不一定指同一日。
历法改革在不同地区并非同时完成。1582 年首先采用改革的地区出现 10 月 4 日后接 10 月 15 日的民用日期序列;其他地区应查当地制度。研究历史人物,不能只依据一个全球统一切换日解释全部档案。
历史年号与天文年编号
传统公元纪年没有公元 0 年,公元前 1 年之后是公元 1 年。天文年编号可以用 0 表示公元前 1 年,用 −1 表示公元前 2 年。把负年写进计算器之前,要查它采用哪套编号。
年号、旧历月份和农历闰月又需要相应转换。转换结果应保留原材料表达,便于回到原文核验;已换算的公历日期不再被当作农历重新转换。
年界与月界
民用新年、农历正月初一和某体系采用的立春,分别来自不同规则。八字月令常按规定的节划分,并不直接按农历初一换月。紫微、宿曜、五运六气或其他体系则需要说明自己的历法和起界。
“都是中国传统方法”不足以推出年界一致。应把原时刻分别交给各体系的归属规则,而不是先把某体系的干支年标签当作所有体系的通用输入。
午夜、子初与子正
钟表午夜通常指民用日期的 00:00。若某方法在 23:00 换日,它的日归属可以提前变化;若以 00:00 换日,则另有结果。对早子、晚子作分开的方法,还可能让日干和时干的推导采用具体组合规则,需要说明完整政策。
假定时刻为某日标准时 23:30。采用午夜换日仍属当天,采用子初换日可能按次日。若再采用太阳时,先求所选时间表示,再判断是否越过所选阈值。两层选择都要写出,不能只给最后的日柱。
交节是一个时刻
节气定义涉及太阳位置,交节发生在具体时刻,不是整天都处于同一种“已经交节”状态。资料若只给日期,不能据此判定当天所有出生都在交节之后。
假设某假定边界为 12:00。11:59:59 属前区间,12:00:00 属后区间,这是本文采用的左闭右开区间。实际交节时刻需要星历;本例展示给定边界下的归属。显示到分钟的 12:00,原始秒值可能在阈值两侧。
完整处理顺序
先确认原始历法、地点和时间制度,得到可比较的时刻。其次按体系选用民用、平太阳或真太阳表示。然后分别应用年界、月界、日界和时辰规则,最后推导干支或其他标签。每一步都能单独解释,便于发现差异究竟从哪层产生。
参考资料
香港天文台历法资料用于历法与节气背景;USNO 历法介绍用于公历与儒略历。进入八字方法比较、紫微方法比较时,再研究相应规则的文本依据。