运限
六个时间层级各自算什么,同一格子的宫名为什么会变,童限怎么起,流耀与流年十二神从哪来。
适合:所有人。代码在页尾
本命盘一生不变,运限是把时间叠加到本命盘上得到的动态信息。 给一个目标日期,x-iztro 一次返回六个层级。
同一个格子,宫名会变
这是运限里最容易绕住人的一点,先说清楚:
运限解读要把运限所在的那一宫当作「这一步的命宫」,其余十一宫跟着重排。 所以同一个格子,在本命盘上是财帛宫,在某个大限里可能就是命宫。
每个运限层级都给出一份重排后的十二宫名,按盘上位置排列。 本命盘的宫名不受影响,两套并存 —— 读结果时要分清手上拿的是哪一套。
六个层级
| 层级 | 周期 | 依据 |
|---|---|---|
| 大限 | 十年 | 五行局起运虚岁 + 性别与年支阴阳定的行进方向 |
| 小限 | 一年 | 年支三合定起点,性别定方向 |
| 流年 | 一年 | 目标日期所在的农历年 |
| 流月 | 一月 | 目标日期所在的农历月 |
| 流日 | 一日 | 目标日期 |
| 流时 | 一时辰 | 目标时辰索引 |
大限与小限都是「按年龄推进」的,但规则完全不同,各走各的; 流年到流时则是「按日历推进」的。两套并行,共同构成一次查询的结果。
每个层级有什么
除小限与流年外,每个层级的结构相同:
| 字段 | 含义 |
|---|---|
index | 该运限落在哪一个盘上位置(0–11,第一格是寅宫) |
name | 层级名,按盘面语言翻译(「大限」「流年」……) |
heavenly_stem / earthly_branch | 该运限的干支 |
palace_names | 以该运限位置为命宫重排的十二宫名 |
mutagen | 该运限干引发的四化星,顺序为禄、权、科、忌 |
stars | 流耀在十二宫的分布,没有流耀的层级为空 |
小限额外带虚岁(nominal_age)。
流年额外带流年十二神:按流年支重起的岁前十二神与将前十二神。 这两组与本命盘上宫位自带的那两组是两回事 —— 本命的按出生年支起,流年的按目标年支起。
童限
大限从五行局决定的虚岁才开始(水二局 2 岁、火六局 6 岁)。 在此之前的年份不属于任何大限,这段时间用童限推算。
童限按虚岁在六个宫之间循环,口诀是「一命二财三疾厄,四妻五福六官禄」:
| 虚岁 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | … |
|---|---|---|---|---|---|---|---|---|---|
| 童限宫 | 命宫 | 财帛 | 疾厄 | 夫妻 | 福德 | 官禄 | 命宫 | 财帛 | 循环 |
当目标日期落在起运之前,大限字段返回的就是童限,层级名显示为「童限」。 字段结构不变,所以调用方不需要特殊处理,只在需要区分时看层级名。
流耀
流年、流月等层级会带一批只在该层级存在的星,称为流耀 (运昌、运曲、运魁、运钺、运鸾、运喜、运禄、运羊、运陀、运马, 以及流年层的流昌、流曲……)。它们按十二宫分组存放。
星的所属层级字段标明它属于哪一层:本命星是 origin,大限流耀是 decadal,
流年流耀是 yearly。
分界点会改变结果
运限的干支与虚岁受两个配置开关影响:
horoscope_divide决定运限年按正月初一还是立春换年,以及流月按初一还是节气分界age_divide决定虚岁按农历年跨年加一,还是过了生日才加一
在年初或生日前后查询时,这两个开关会直接改变返回的干支与虚岁。 详见 Config 详解。
在代码里怎么取
运限从已排好的盘发起,出生参数、盘面语言与配置都从盘上取,只需给目标日期与时辰:
h = chart.horoscope("2024-10-1", 0)let h = astrolabe.horoscope("2024-10-1", 0)?;h, err := astrolabe.Horoscope("2024-10-1", 0)读六个层级:
h = chart.horoscope("2024-10-1", 0)
print(h.decadal.name, h.decadal.heavenly_stem + h.decadal.earthly_branch, h.decadal.mutagen)
print(h.age.name, "虚岁", h.age.nominal_age)
print(h.yearly.name, h.yearly.heavenly_stem + h.yearly.earthly_branch)
print("流年重排宫名:", h.yearly.palace_names)
print("流年岁前十二神:", h.yearly.yearly_dec_star.suiqian12)大限 庚辰 ['太阳', '武曲', '太阴', '天同']
小限 虚岁 25
流年 甲辰
流年重排宫名: ['夫妻', '兄弟', '命宫', '父母', '福德', '田宅', '官禄', '仆役', '迁移', '疾厄', '财帛', '子女']
流年岁前十二神: ['吊客', '病符', '岁建', '晦气', '丧门', '贯索', '官符', '小耗', '大耗', '龙德', '白虎', '天德']遍历流耀:
for palace_index, stars in enumerate(h.yearly.stars or []):
for s in stars:
print(palace_index, s.name, s.scope)三侧读法一致
小限与流年各自多带一项专属数据(虚岁、流年十二神),Rust 里通用字段收在 .base 下,
但两个类型都实现了 Deref,h.yearly.heavenly_stem 直接可读;序列化到 Python / Go 时
这一层被展平,同样写 h.yearly.heavenly_stem。