八字排盘 · 生肖查询
用途
输入出生日期与出生时辰,输出:
- 生肖属相(按年支,以立春为界)
- 四柱八字:年柱、月柱、日柱、时柱的天干地支
- 日主、五行分布
- 推算说明(立春时刻、所属节气、五虎遁/五鼠遁依据)
使用流程
第一步:收集参数
必需:出生日期(公历)、出生时辰。
可选:出生地经度(用于真太阳时校正)、是否需要晚子时换日。
- 若用户只给了农历日期,先说明本工具按公历推算,需要用户提供对应的公历日期。
- 若用户只给「午时」这类时辰名,脚本按该时辰中点推算,并在输出中提示精确度有限。
- 若用户给出出生地但没给经度,从
references/bazi-reference.md第十节取常用城市经度,或询问用户。
第二步:运行排盘脚本
脚本仅依赖 Python 标准库:
python scripts/bazi.py --date 1990-05-15 --time 14:30
python scripts/bazi.py --date 1990年5月15日 --time 午时
python scripts/bazi.py --date 1990-05-15 --time 23:30 --night-zi
python scripts/bazi.py --date 1990-05-15 --time 14:30 --longitude 116.41
python scripts/bazi.py --date 1990-05-15 --time 14:30 --json
参数:--date 日期、--time 时辰、--longitude 出生地东经(真太阳时校正)、
--night-zi 晚子时换日、--json 输出 JSON。
若环境中 python 不在 PATH,改用托管解释器绝对路径
(例如 C:\Users\<用户名>\.workbuddy\binaries\python\versions\3.13.12\python.exe)。
Windows 下终端回显中文乱码时,属控制台编码问题,加 -X utf8 或把输出写入文件后再读取。
第三步:整理输出给用户
以脚本文本输出为主体,用表格或代码块呈现四柱,保留脚本给出的推算说明,并补充:
- 生肖按立春划分(八字标准)。用户出生在 1 月 1 日至 2 月中旬时,主动说明
按农历春节划分可能相差一个属相。 - 出生时刻落在节气交节点附近时(脚本会给出提醒),说明干支归属可能有争议。
- 只给了时辰名未给具体时刻时,说明按中点推算、精确度有限。
排盘规则(已固化在脚本中,勿自行改写)
- 年柱:以立春(太阳视黄经 315°)为界;年柱序号
(干支纪年 − 4) % 60。 - 月柱:以十二「节」为界(立春、惊蛰、清明、立夏、芒种、小暑、立秋、白露、寒露、立冬、大雪、小寒);
月干依五虎遁由年干起。 - 日柱:
(儒略日数 + 49) % 60,儒略日数由公历日期推算。 - 时柱:地支按时辰(子时 23:00–01:00),天干依五鼠遁由日干起。
- 生肖:直接取年支对应的生肖。
详细速查表(天干地支、生肖、月/时干口诀、常用城市经度)见
references/bazi-reference.md,需要向用户解释推算依据或人工复核时再读取。
边界与注意事项
- 年份范围 1800–2200,节气时刻精度约 ±5 分钟。
- 本技能只排四柱与生肖,不做命理吉凶解读,也不含藏干、十神、大运、神煞、纳音。
用户要求这些扩展内容时,说明超出本技能范围;如仅作常识性说明,须标明非专业意见。 - 不要凭记忆手工推干支,一律运行脚本,避免算错。