快速开始

概览

排盘要准备哪些输入、每个参数取什么值,以及三种编程语言的安装方式。

适合:所有人。参数表不需要会写代码也能看懂

三套绑定共用同一个 Rust 核心,因此参数含义与排盘结果完全一致,只是写法不同。 先看清楚要准备什么,再挑你的编程语言。

你需要准备的输入

无论哪种编程语言,排盘都从这几个参数开始。前三个是必须的,后三个都有默认值。

参数含义取值
solar_date / lunar_date出生日期"YYYY-M-D",如 "2000-8-16"。公历范围 1583–9999 年
time_index出生时辰整数 0–12,见下表
gender性别"male" / "female"(Rust 为 Gender 枚举)
fix_leap是否修正闰月布尔值,默认 true
language盘面语言"zh-CN"(默认) "zh-TW" "en-US" "ja-JP" "ko-KR" "vi-VN"
config分界点与流派Config 详解,缺省即 iztro 默认

不写代码?这张表就是你要交给工程师的东西

排盘只需要出生日期、时辰、性别三样。把它们按上面的格式写清楚交出去, 工程师那边一行调用就能出盘。想知道这个库能做什么、典型怎么用, 看不写代码怎么用它

时辰索引

紫微斗数按十二时辰计时,且把子时拆成首尾两段,所以索引是 0–12 共 13 个值。

索引时辰时间索引时辰时间
0早子时00:00–01:007未时13:00–15:00
1丑时01:00–03:008申时15:00–17:00
2寅时03:00–05:009酉时17:00–19:00
3卯时05:00–07:0010戌时19:00–21:00
4辰时07:00–09:0011亥时21:00–23:00
5巳时09:00–11:0012晚子时23:00–24:00
6午时11:00–13:00

晚子时不是笔误

23:00–24:00 出生的人用索引 12 而不是 0。这两个索引排出的盘不同: 默认配置下晚子时按次日推算日柱,早子时按当日。 这个行为由 day_divide 开关控制,见 Config 详解

关于 fix_leap

农历闰月没有独立的月建,排盘时要决定闰月的日子算上个月还是下个月。 fix_leap = true(默认)时按 iztro 的规则修正:闰月前半月算本月,后半月算下月。 设为 false 则整个闰月都算本月。

只有出生在闰月的人会受影响,其余情况该参数无作用。

选择编程语言

输入校验

给开发者

日期与时辰在核心层前置校验,三种编程语言共用同一道防线;非法输入不会 panic, 而是按各自的惯例报错:

编程语言表现
Rust返回 Err(IztroError).code() 给出机器可读分类
PythonIztroError(继承 ValueError),.code 同上
Go返回 *iztro.Error,可用 errors.Is 匹配哨兵
C FFI返回 {"error":"...","code":"..."} JSON

核心层校验的是日期格式与真实存在性、公历 1583–9999 范围、时辰索引 0–12。 性别、盘面语言、配置开关这些以字符串传入的参数,在绑定层解析时校验 —— Rust 侧它们本来就是枚举,不存在非法取值。

详见错误处理

本页目录