紫微斗数笔记

  大童  |   on Friday, December 19, 2025  |  6621   |  14 minutes

最近计划写个玄学APP,遭遇紫微斗数这个骨头。不懂命理,仅做笔记。

网站已基本成型,APP已完成IOS本地,不满意,需重构。已经20年没有系统性的写代码,借AI老树逢春。踩了无数的坑,目的是把AI Coding+APP发布全流程串一遍。很好玩。

玄学网站暂称 星程社 -- https://xcs.biboer.cn

ziweidoushu/ziweidoushu-19.png

ziweidoushu/ziweidoushu.png

算命宫 & 身宫

依据出生月份和时辰推算命宫

  1. 算地支 卯辰巳午未申酉戌亥子丑 (寅在左下角,顺时针落地支)
正月 寅
二月 卯
三月 辰
四月 巳
五月 午
六月 未
七月 申
八月 酉
九月 戌
十月 亥
十一月 子
十二月 丑

出生月份 => 地支,比如:3月 - 辰,4月 - 巳,5月 - 午(谐音)

  1. 算时辰
时间时辰地支
23:00 – 00:59子时
01:00 – 02:59丑时
03:00 – 04:59寅时
05:00 – 06:59卯时
07:00 – 08:59辰时
09:00 – 10:59巳时
11:00 – 12:59午时
13:00 – 14:59未时
15:00 – 16:59申时
17:00 – 18:59酉时
19:00 – 20:59戌时
21:00 – 22:59
亥时
出生时间,算出时辰,比如:11:30分出生 => 午时
  1. 推算 命宫 && 身宫 子 - 丑 - 寅 - 卯 - 辰 - 巳 - - 未 - 申 - 酉 - 戌 - 亥

比如:3月(月支辰) 午时 出生。午时位置6(不包含子),从逆时针数3个位置 => 命宫。 3月(月支辰) 午时 出生。午时位置6(不包含子),从顺时针数3个位置 => 身宫也在

比如:5月(月支午) 卯时 出生。卯时位置3(不包含子),从逆时针数3个位置 => 命宫。 5月(月支午) 卯时 出生。卯时位置3(不包含子),从顺时针数3个位置 => 身宫也在

命宫:$\boxed{mingGong = mod12(monthIndex - hourIndex)}$; 身宫:$\boxed{shenGong = mod12(monthIndex + hourIndex)}$;

身宫落宫人生主要用力点白话理解
命宫自我、个人选择靠自己扛事,成败多由自己决定
兄弟宫人脉、同辈、合作通过朋友、团队、伙伴成事
夫妻宫伴侣、合作关系人生被关系牵动,选对人很重要
子女宫付出、培养、项目为人、为事、为作品长期投入
财帛宫金钱、资源、经营一生围绕资源与价值流转
疾厄宫压力、系统、责任扛事多,操心多,易累
迁移宫外出、变化、机遇机会在外,常走动、变动
仆役宫团队、管理、下属管人、带队、协调事务
官禄宫事业、职责、成就以工作与成就定义人生
田宅宫家庭、资产、稳定重心在家、房产、长期安全感
福德宫内心、精神、享受重视内在感受与生活品质
父母宫责任、规范、背景承担家族责任,受长辈影响

命宫是基本盘,相当于基本人格。命宫是固定的,落在不同的宫位,就有12个基本盘,相当于12种基本人格。(大限小限流月流日,这些是在变的)。

根据命宫所在的地支确定局数

地支五行局数
子、亥2 局
寅、卯3 局
申、酉4 局
辰、戌、丑、未5 局
巳、午6 局
局数为什么是: 2-6❓
  • 对应五行。那为什么不是1-5或3-7?
  • 1天然不行,算模数永远是0
  • 7不行,这和紫微的空间结构有关:
    • 12 宫(固定)
    • 紫微 ↔ 天府:对宫(6)
    • 所有“尺度设计”都围绕 6 / 12 展开。

安星

紫薇安宫

紫薇星落在那个宫

输入:出生日day 依据出生月和时辰推算出命宫和身宫 -- 依据命宫所在宫位的地支推出局数N。 依据day和N推算紫微星所在宫位。 • d = 农历出生日(1–30) • N = 局数(2–6) • offset = 最小非负整数,使 (d + offset) % N == 0,计算q = (d + offset) / N, base = q mod 12

紫薇星:从(左下角)顺时针走base步 --> 修正,offset为偶数,顺时针再走offset步;offset为奇数,逆时针走offset步 --> 紫薇星落在该宫位。

天府星 = 紫微星的对宫(相差 6 宫)。 const palaces = ["寅","卯","辰","巳","午","未","申","酉","戌","亥","子","丑"]; const tianFu = palaces[(ziWeiIndex + 6) % 12];

主星对宫主星说明
紫微天府帝星 ↔ 库星(最核心一对)
天机太阴动 ↔ 静
太阳武曲贵 ↔ 财
天同廉贞和 ↔ 制

十四主星,前表4对,剩下的主星: • 天相 • 天梁 • 七杀 • 破军 • 贪狼 • 巨门

禄存、擎羊,陀罗、天马

按出生天干定禄存,地支定天马,按禄存擎羊&陀罗

星名依据是否依赖其他星
禄存年干
擎羊禄存✅ 禄存下一个
陀罗禄存✅ 禄存上一个
天马年支
出生年干禄存
丙、戊
丁、己

天马只会出现在四马地

出生年地支天马所在
寅・午・戌
申・子・辰
巳・酉・丑
亥・卯・未

天魁 、天钺

按出生年天干(年干)**来定 天魁 / 天钺 的本命落宫

  • 甲、戊、庚年:天魁在,天钺在
  • 乙、己年:天魁在,天钺在
  • 辛年:天魁在,天钺在
  • 壬、癸年:天魁在,天钺在
  • 丙、丁年:天魁在,天钺在

左辅、右弼

出生当年的「农历月份」(lunarMonth)安 左辅、右弼本命位置 左辅、右弼按出生农历月安星:左辅自辰顺数生月,右弼自戌逆数生月;闰月按本月论。 • 左辅 = 辰 + (lunarMonth - 1)(顺行) • 右弼 = 戌 - (lunarMonth - 1)(逆行) 比如,农历2月,左辅就是顺行1格,右弼就是逆行1格。

文昌、文曲

出生地支推算。 子 - 丑 - 寅 - 卯 - 辰 - 巳 - - 未 - 申 - 酉 - 戌 - 亥 hourindex序号:子=0, 丑=1, …, 亥=11(子=0)

wenQu = (辰 + hourIndex) ; // 辰顺时文曲 **wenChang = (戌 - hourIndex) **; // 戌逆时觅文昌

比如:午时出生,文曲从辰顺行6格 - 戌,文昌从戌逆行6格 - 辰。 比如:子时出生,文曲从辰顺行0格 - 辰,文昌从戌逆行0格 - 戌。


  • 台辅:午宫起子时,顺数至生时安之 
  • 封诰:寅宫起子时,顺数至生时安之 taifu   = fixIndex(午+ hourIndex); // 午顺时台辅 fenggao = fixIndex(寅+ hourIndex); // 寅顺时封诰

在「子=0」体系下:台辅 = 午 + hourIndex,封诰 = 寅 + hourIndex(皆顺行)。


地劫(亥起,顺时)地空(同样亥起,但逆回) diJie = fixIndex(亥 + hourIndex); (顺行) diKong = fixIndex(亥 - hourIndex); (逆行)


火星起点 / 铃星起点

出生年支组火星子时起点(startHuo)铃星子时起点(starLing)
申・子・辰
寅・午・戌
巳・酉・丑
亥・卯・未

$\boxed{ \text{火星} = \operatorname{mod12}( startHuo + hourIndex ) }(顺行)$ $\boxed{ \text{铃星} = \operatorname{mod12}( startLing + hourIndex ) }(顺行)$

红鸾、天喜

卯上起子逆数之,数到当生太岁支” hongluanIndex = fixIndex(卯 - yearIndex); tianxiIndex   = fixIndex(hongluanIndex + 6);

华盖、咸池

华盖(按年支)

  • 子・辰・申 → 辰
  • 丑・巳・酉 → 丑
  • 寅・午・戌 → 戌
  • 卯・未・亥 → 未

咸池(按年支)

  • 子・辰・申 → 酉
  • 丑・巳・酉 → 午
  • 寅・午・戌 → 卯
  • 卯・未・亥 → 子

三台、八座、恩光、天贵

birthDay -- 农历出生日

  • 三台 = 左辅 + (birthDay - 1)(顺行)
  • 八座 = 右弼 - (birthDay - 1)(逆行)
  • 恩光 = 文昌 + (birthDay - 2)(顺行)
  • 天贵 = 文曲 + (birthDay - 2)(顺行) 计算结果如>12,mod12

孤辰 / 寡宿(按年支)

  • 寅卯辰年:孤辰=巳,寡宿=丑
  • 巳午未年:孤辰=申,寡宿=辰
  • 申酉戌年:孤辰=亥,寡宿=未
  • 亥子丑年:孤辰=寅,寡宿=戌

劫杀(又称劫煞,按年支)

把“蛇/猴/猪/虎”落到地支就是: • 申子辰 → 巳(蛇) • 亥卯未 → 申(猴) • 寅午戌 → 亥(猪) • 巳酉丑 → 寅(虎)

大耗(按年支)

  1. 先取年支对宫: $\boxed{opp = mod12(year + 6)}$
  2. 再按年支阴阳“移一宫”: • 阳支(子寅辰午申戌):从对宫顺行移 1 • 阴支(丑卯巳未酉亥):从对宫逆行移 1 $\boxed{ daHao = mod12\big( opp + (isYang(year) ? +1 : -1) \big) }$

天才 / 天寿(按年支,但起点是命/身宫)

• 天才:从命宫起子(0 步),顺行到本生年支步数 • 天寿:从身宫起子(0 步),顺行到本生年支步数

$\boxed{ tianCai = mod12(mingGong + yearIndex) }$ $\boxed{ tianShou = mod12(shenGong + yearIndex) }$

下面把你这段里的 每一条口诀都“压缩成算法公式 / 查表规则”,全部用你已经统一的体系来写:

统一前提 • 地支索引:子=0 … 亥=11 • mod12 / fixIndex 负责归一 • 年支索引记为 y,年干记为 g

破碎(按年支)

口诀: 子午卯酉年安巳宫 寅申巳亥年安酉宫 辰戌丑未年安丑宫

年支组破碎
子・午・卯・酉
寅・申・巳・亥
辰・戌・丑・未

天厨(按年干)

年干天厨
甲・丁
乙・戊・辛

蜚蠊(按年支,组内映射)

口诀给的是 “三年 → 三宫”一一对应: • 子 丑 寅 → 申 酉 戌 • 卯 辰 巳 → 巳 午 未 • 午 未 申 → 寅 卯 辰 • 酉 戌 亥 → 亥 子 丑

龙池 / 凤阁(按年支,顺逆数)

龙池 辰宫起子,顺行至生年 $\boxed{ 龙池 = mod12( 辰 + yearindex ) }$

凤阁 戌宫起子,逆行至生年 $\boxed{ 凤阁 = mod12( 戌 - yearindex ) }$

天哭 / 天虚(按年支,同起点)

起午宫,哭逆、虚顺 $\boxed{ 天哭 = mod12( 午 - yearindex ) }$ $\boxed{ 天虚 = mod12( 午 + yearindex ) }$

天官 / 天福(按年干)

口诀是一干对应 两支(前者天官,后者天福):

年干天官天福

截路空亡(截空,按年干)

年干截空
甲・己申・酉
乙・庚午・未
丙・辛辰・巳
丁・壬寅・卯
戊・癸子・丑

天空(按年支)

口诀: 生年支顺数的前一位就是 在你“顺行 = +1”的定义下,前一位 = −1: $\boxed{ 天空 = mod12( yearindex + 1 ) }$ 顺行

按你现在统一的“索引体系”(子=0…亥=11,顺行=+,逆行=-,fixIndex/mod12 归一),这几条可以直接落成下面这些公式/查表


年解(按年支)

口诀:

戌上起子,逆数至当生年太岁 设 y = 年支索引(子=0..亥=11),xu=戌索引: $\boxed{ 年解 = mod12( 戌 - yearindex ) }$

月解(按生月)

口诀:

正二在申,三四在戌,五六在子,七八在寅,九十在辰,十一十二在午

这是按月份两两一组查表(月=1..12):

月份(农历)月解
j1,2
3,4
5,6
7,8
9,10
11,12

天刑 / 天姚(按生月,顺数)

口诀:

  • 天刑:酉起正月,顺至生月
  • 天姚:丑起正月,顺到生月

这里“正月不动” ⇒ 用 (lunarMonth - 1): $\boxed{ 天刑 = mod12( 酉 + (monthindex-1) ) }$ $\boxed{ 天姚 = mod12( 丑 + (monthindex-1) ) }$


阴煞(按生月)

口诀:

正七寅,二八子,三九戌,四十申,五十一午,六十二辰 查表(月=1..12):

月份阴煞
1,7
2,8
3,9
4,10
5,11
6,12

天月(按生月)

口诀:

一犬二蛇三在龙,四虎五羊六兔宫。七猪八羊九在虎,十马冬犬腊寅中。 把动物换地支:犬=戌,蛇=巳,龙=辰,虎=寅,羊=未,兔=卯,猪=亥,马=午,冬=十一,腊=十二

月份天月
1
2
3
4
5
6
7
8
9
10
11
12

天巫(按生月)

口诀:

正五九在巳,二六十在申,三七十一在寅,四八十二在亥

月份天巫
1,5,9
2,6,10
3,7,11
4,8,12

流昌/流曲

可以用**“去四墓(辰戌丑未)后的 8 宫序列”来推。 去掉四墓宫(丑、辰、未、戌),剩下 8 个依顺行排列:

S = [子, 寅, 卯, 巳, 午, 申, 酉, 亥]

并约定天干序号:

G = [甲,乙,丙,丁,戊,己,庚,辛,壬,癸] 对应 0..9 -- gindex

流昌(顺行,起巳)

口诀:流昌起巳位,甲乙顺流去,不用四墓宫 先查生年天干 -- 得到gindex,在从“巳”开始循环顺行gindex -- 的到流昌 $\boxed{ 流昌 = S\big[(SIndex(巳)+gindex)\bmod 8\big] }$

因为,SIndex(巳)=3,所以就是取 S[(3+gindex)%8]

天干流昌所在

流曲(逆行,起酉)

口诀:流曲起酉位,甲乙逆行踪,亦不用四墓… $\boxed{ 流曲 = S\big[(SIndex(酉)-gindex)\bmod 8\big] }$

因为 SIndex(酉)=6,所以就是取 S[(6-gindex)%8]

天干流曲所在
  • 长生十二神(生命阶段)
  • 博士十二神(事务 / 能力状态)
  • 岁前十二神(年度环境)
  • 将前十二神(行动与变动)

统一的“宫位索引”与通用放置公式

地支
索引01234567891011

长生十二神

五行局 → 长生起点地支(你的注释版)

五行局长生起点在
水二局
木三局
金四局
土五局
火六局
起点索引:把上表的地支换成索引即可(例如 申=6,亥=9,巳=3,寅=0)。

长生十二神固定顺序(i=0..11)

i01234567891011
名称长生沐浴冠带临官帝旺

顺逆判定

  • 阳男、阴女:顺行(dir=+1)
  • 阴男、阳女:逆行(dir=-1)

这里的“阳/阴”通常指 生年天干阴阳(甲丙戊庚壬为阳干;乙丁己辛癸为阴干)。

博士十二神:禄存起 + 顺逆 + 顺序

生年天干 → 禄存所在宫(地支) 古诀非常标准: “甲禄在寅,乙禄在卯,丙戊禄在巳,丁己禄在午,庚禄在申,辛禄在酉,壬禄在亥,癸禄在子。”  整理成表:

生年天干
禄存地支

把禄存地支换成索引(寅0、卯1、巳3、午4、申6、酉7、亥9、子10)就是 startIndex。

博士十二神固定顺序(i=0..11) 从禄存起安(起点为“博士”),顺序如下: 博士、力士、青龙、小耗、将军、奏书、蜚廉(飞廉)、喜神、病符、大耗、伏兵、官府。 

顺逆判定

  • 阳男、阴女:顺行(dir=+1)
  • 阴男、阳女:逆行(dir=-1)

这里的“阳/阴”通常指 生年天干阴阳(甲丙戊庚壬为阳干;乙丁己辛癸为阴干)。

流年将前诸星

将星起点(按流年地支)

流年地支属于寅午戌申子辰巳酉丑亥卯未
将星落在
(即:寅午戌年午将星;申子辰年子将星;巳酉丑年酉将星;亥卯未年卯将星)

将前十二神

从将星起,依次顺行: 将星、攀鞍、岁驿、息神、华盖、劫煞、灾煞、天煞、指背、咸池、月煞、亡神。 

将前一般按口诀“次第行”理解为 顺行 一 宫 一 星(实际实现也最常见)。 

流年岁前诸星

岁建(太岁=流年地支)起 + 顺序**

  • 岁建/太岁 直接落在 流年地支所在宫。  因此 startIndex = index(流年地支)。

岁前十二神固定顺序

从岁建起,依次: 岁建、晦气、丧门、贯索、官符、小耗、大耗、龙德、白虎、天德、吊客、病符。 

注:不同流派/资料里第 7 位有时会写“岁破”之类,你的注释版本是“小耗大耗龙德继”,更贴近上面这套。 另外也有说法是岁前十二神“不分阴阳顺逆,一律安十二星”。 (如果你要严格跟你注释:那就照你的顺逆规则实现。)


如果你愿意,我可以把以上表格直接整理成 TS/JS 的常量表(Map + 数组),并给出 getStartIndex()、place12() 这种通用函数模板,方便你把这几段注释对应的实现一次性写干净。

命主 & 身主 & 子斗(子年斗君)

命主,按命宫地支。找到命宫位置,找到命宫地支。

命宫地支soul(命主)
贪狼
巨门
禄存
文曲
廉贞
武曲
破军
武曲
廉贞
文曲
禄存
巨门

身宫,按出生年支

年支body(身主)
火星
天相
天梁
天同
文昌
天机
火星
天相
天梁
天同
文昌
天机
子斗(子年斗君)
#month: 1~12
#hourIndex: 0~11 (子=0, 丑=1 ...)
第一步:子起,逆行生月
#baseIndex = (0 - (month - 1)) % 12
第二步:落宫起,顺数生时
ziYearDouJunIndex = (baseIndex + hourIndex) % 12

如: 生于,二月未时。月支从子逆行1(不包含子) -- 亥,从亥循序7(不包含亥) -- 午


三方四正 & 对宫

斗数十二宫一共有4组三合宫(三方),分别是: (1) 命财官——命宫、财帛宫、官禄宫 (2) 兄疾田——兄弟宫、疾厄宫、田宅宫 (3) 夫迁福——夫妻宫、迁移宫、福德宫 (4) 父子友——父母宫、子女宫、交友宫

6组对宫,分别为: (1) 命迁(命宫与迁移宫) (2) 兄友(兄弟宫与交友宫) (3) 官夫(官禄宫与夫妻宫) (4) 子田(子女宫与田宅宫) (5) 福财(福德宫与财帛宫) (6) 父疾(父母宫与疾厄宫)

当星曜入某宫,称“”或“”此宫。如上图(3),紫微星入命宫,即称“紫微坐命”。 如果凶星入对宫,对本宫而言为“”;吉星入对宫,对本宫而言为“”或“”。 三合宫位的星曜,对本宫而言为“”。 邻宫的星曜对本宫为“”或“”(一般来讲,成对儿的吉星分局两个邻宫称“辅”)。 两个(主)星在同一宫,互称同度等。

ziweidoushu/ziweidoushu-20.png

十二宫职

ziweidoushu/ziweidoushu-21.png

十二地支

ziweidoushu/ziweidoushu-22.png 我们常听到“命宫在子宫”,或“紫微坐子”等等这类的表述,这里的“子”,即为该宫位的地支。

方位的判断也是地支在斗数中重要的应用之一。

十二地支与方向的对应关系
子宫——正北方;午宫——正南方; 卯宫——正东方;酉宫——正西方。 丑宫——北偏东;寅宫——东偏北; 辰宫——东偏南;巳宫——南偏东; 未宫——南偏西;申宫——西偏南; 戌宫——西偏北;亥宫——北偏西。

地支三合宫即: 申子辰合,亥卯未合,寅午戌合,巳酉丑合。 ziweidoushu/ziweidoushu-23.png

三方四正中的“四正”,即对(冲)宫: ziweidoushu/ziweidoushu-24.png

ziweidoushu/ziweidoushu-25.png

地支六组合宫,也称暗合,即: 子丑合、寅亥合、卯戌合、辰酉合、巳申合、午未合。 ziweidoushu/ziweidoushu-26.png ziweidoushu/ziweidoushu-27.png ziweidoushu/ziweidoushu-28.png 地支有六组互害宫,也称暗害,即: 子未相害,丑午相害,寅巳相害,卯辰相害,申亥相害,酉戌相害。 ziweidoushu/ziweidoushu-29.png ziweidoushu/ziweidoushu-30.png ziweidoushu/ziweidoushu-31.png

ziweidoushu/ziweidoushu-32.png

ziweidoushu/ziweidoushu-33.png ziweidoushu/ziweidoushu-34.png

ziweidoushu/ziweidoushu-35.png

干宫四化/命宫四化/生年四化

天干化禄化权化科化忌
廉贞破军武曲太阳
天机天梁紫微太阴
天同天机文昌廉贞
太阴天同天机巨门
贪狼太阴右弼天机
武曲贪狼天梁文曲
太阳武曲太阴天同
巨门太阳文曲文昌
天梁紫微左辅武曲
破军巨门太阴贪狼

ziweidoushu.jpg

干点星,星落宫,禄权科忌不换名。

类型看什么干会不会变作用重点
生年四化出生年天干❌ 不变一生核心动力
四化类型使用的天干是否固定主要作用
生年四化出生年天干✅ 一生固定先天核心动力
命宫四化命宫天干❌ 固定盘中主观驱动力
宫干四化(飞宫四化)各宫宫干❌ 固定盘中宫位因果互动
大限四化大限天干❌ 每十年变阶段主题
流年四化流年天干❌ 每年变年度事件
小限四化小限天干❌ 每岁变主观感受
流月四化流月天干❌ 每月变月度波动
流日四化流日天干❌ 每日变当日触发
流时四化流时天干❌ 每时变瞬时反应
Mermaid diagram
Mermaid diagram