合成示例中,决定边界的是精确节气时刻,而不是日历上印出的日期。
立春是一个节气时刻,不只是日历日期
立春是二十四节气之一,对应太阳到达规定黄经的位置。日历常把它标在 2 月 3 日、4 日或 5 日,但八字计算使用的是发生在某个具体时分秒的边界,而不是把整个本地日期都视为同一侧。
MingWeave 会把解析后的出生物理时刻与立春时刻直接比较。出生发生在立春之前,年柱仍属于上一八字年;等于或晚于边界,则进入新的一年。即使公历已经在 1 月 1 日换年,或当年的农历新年落在另一天,这条规则也保持不变。
三个熟悉的“新年”为何可能不同
公历 1 月 1 日是民用历法边界,农历新年开启农历年,而立春是 MingWeave 四柱方法采用的太阳节气边界。三者属于不同时间系统,因此在它们之间出生的人,若计算器把边界混用,年柱就可能发生变化。
这类差异不能靠选择最熟悉的节日来解决。计算器需要公开自己的约定。其他传统方法可以采用不同边界,但可复现的产品应明确说明实现了哪一种规则,保留精确节气时间戳,并在记录足够接近边界、钟表精度可能影响结果时发出提示。
一个边界示例
假设某年的立春在解析后的工作时区中发生于 16:20。按这套规则,一个合成出生记录若为 16:19,仍属于上一八字年;16:20 则进入新年。两条记录拥有相同的日历日期,却位于边界两侧,因此只输入日期无法确定结果。
即使启用真太阳时,MingWeave 对年柱仍比较出生的物理 UTC 时刻与立春时刻;太阳时校正不会移动年界。计算追踪会保留民用时钟和视太阳时,供日柱与时柱规则使用,同时让年、月节气边界继续锚定真实物理时刻。
- 比较精确时刻,不只比较打印日期。
- 使用出生地对应的历史时区换算。
- 边界附近的记录要保留钟表精度不确定性。
怎样核查年柱不一致
先询问另一款计算器使用什么年界、采用哪个立春时间戳和星历来源、怎样处理出生地点,以及是否启用了太阳时。把出生时刻与边界转换到同一时间尺度再比较。单独看到一个不同年柱,还不足以定位原因。
MingWeave 会显示前后节气、到相关边界的距离、方法档案、引擎版本与节气数据版本。如果记录靠近立春,在分享结果时也应保留警告。命盘应把影响条件说明清楚,而不是为了简洁把它抹掉。