四柱八字由年柱、月柱、日柱和时柱组成,每一柱包含一个天干和一个地支,共八个字。排盘程序通常先得到四柱,再计算十神、藏干、五行、纳音和大运等派生信息。
十天干为甲、乙、丙、丁、戊、己、庚、辛、壬、癸;十二地支为子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。代码中适合使用固定顺序数组或带明确字段的对象保存,避免在多个模块重复维护同一份映射。
const pillar = {
stem: "甲",
branch: "子",
stemElement: "木",
branchElement: "水"
};实际项目还可以加入阴阳、十神、藏干和纳音字段。计算层应返回结构化数据,界面层只负责显示,这样更容易测试和扩展。
- 年柱边界不一定以公历元旦为准
- 月柱通常与节气相关,而不是简单使用农历月份
- 日柱需要稳定的历日算法与基准
- 时柱依赖日干和时辰划分
- 子时换日规则在不同流派中可能不同
本项目的完整文件可从 GitHub 下载并研究。