# 十二宫 (/zh/docs/guide/concepts/palaces)

十二个宫名各自代表什么，身宫与来因宫的判定，宫干的用途，以及大限小限如何挂在宫上。



*适合：所有人。代码在页尾*

## 十二宫名 [#十二宫名]

十二宫覆盖人生的十二个领域。它们从**命宫**起，按固定顺序**逆时针**安放在盘上：

| 顺序 | 盘上写作 | 常见别名    | 大致含义         |
| -- | ---- | ------- | ------------ |
| 1  | 命宫   | 本命宫     | 本性、总纲，整张盘的核心 |
| 2  | 父母   | 父母宫、相貌宫 | 父母、长辈、上级、庇荫  |
| 3  | 福德   | 福德宫     | 精神生活、兴趣、福分   |
| 4  | 田宅   | 田宅宫     | 不动产、家庭环境     |
| 5  | 官禄   | 官禄宫、事业宫 | 事业、职业、学业     |
| 6  | 仆役   | 交友宫、奴仆宫 | 朋友、同事、下属     |
| 7  | 迁移   | 迁移宫     | 外出、变动、外界际遇   |
| 8  | 疾厄   | 疾厄宫     | 身体、疾病        |
| 9  | 财帛   | 财帛宫     | 财务、收入        |
| 10 | 子女   | 子女宫     | 子女、晚辈、创造力    |
| 11 | 夫妻   | 夫妻宫、配偶宫 | 配偶、亲密关系      |
| 12 | 兄弟   | 兄弟宫     | 兄弟姐妹、平辈      |

<Callout title="盘上的宫名不带「宫」字">
  只有命宫例外。中文盘上第六宫写作**仆役**，不是坊间常见的「交友宫」。
  别名列只是各家说法，不会出现在排盘结果里 —— 要做判断请用标识，见页尾。
</Callout>

<Callout>
  「宫名的顺序」与「宫在盘上的位置」是两回事。宫名顺序永远是上表这个循环，
  但命宫落在哪个地支格由排盘算出，其余十一宫跟着排。
  所以十二宫数组的位置对应地支，不对应宫名顺序。
</Callout>

## 命宫怎么定 [#命宫怎么定]

命宫由**农历生月**与**生时**共同定位：从寅宫起正月顺数到生月，再从该宫起子时逆数到生时。
这个位置决定了整张盘的格局，也是五行局与大限的推算起点。

## 身宫 [#身宫]

身宫用同样的月时数据但顺数生时得到，落点必定是十二宫中的某一宫。
它不是独立的第十三宫，而是给某个宫加上一个标记。

传统上命宫看先天本质，身宫看后天着力与中年后的走向。

## 来因宫 [#来因宫]

来因宫是**宫干与出生年干相同**，且不在子、丑二宫的那一宫。
它标示这张盘的「来处」，是飞星派的重要起点。

一张盘上**恒有且仅有一个**来因宫。理由在宫干的安法里：

十二宫的宫干从寅宫起按五虎遁顺排，十个天干排十二个宫，
所以只有开头两个（寅、卯）会在末尾（子、丑）重复一次 ——
与年干相同的宫因此恰好有两个，且必定是「寅或卯」与「子或丑」这一对。
排除子丑之后，剩下的正好一个。

## 宫干与宫支 [#宫干与宫支]

每个宫都有自己的一组干支：

* **宫支**：由宫在盘上的位置固定决定（第一格是寅，见[总览](/zh/docs/guide/concepts#盘面的排列)），一生不变。
* **宫干**：由出生年干按五虎遁推出。

宫干的用途是**四化飞星**：一个宫的宫干决定它「飞出」哪四颗化星，
由此判断宫与宫之间的关系。见[四化与飞星](/zh/docs/guide/concepts/mutagen#飞星)。

## 大限 [#大限]

大限是十年一步的运程，每个宫掌管一段。起始虚岁由[五行局](/zh/docs/guide/concepts#五行局)决定：

| 五行局 | 局数 | 起运虚岁 | 首个大限区间 |
| --- | -- | ---- | ------ |
| 水二局 | 2  | 2    | 2–11   |
| 木三局 | 3  | 3    | 3–12   |
| 金四局 | 4  | 4    | 4–13   |
| 土五局 | 5  | 5    | 5–14   |
| 火六局 | 6  | 6    | 6–15   |

行进方向由**性别阴阳与年支阴阳**共同决定：两者相同则顺行，相异则逆行，
即口诀「阳男阴女顺行，阴男阳女逆行」。
（年干与年支的阴阳恒同，所以按年干说也是同一回事，见[阴阳](/zh/docs/guide/concepts/stems-branches#阴阳)。）

<Callout title="起运前的岁数">
  出生到起运虚岁之间的年份不属于任何大限，这段时间用**童限**推算，
  由运限接口返回。见[运限](/zh/docs/guide/concepts/horoscope#童限)。
</Callout>

## 小限 [#小限]

小限是一年一步的运程，与大限并行，每年走一宫，同一个宫每十二年轮到一次。

小限的规则与大限**不同**，两条独立：

* **起点**由年支所属的三合组决定（寅午戌年起辰宫、申子辰年起戌宫、
  巳酉丑年起未宫、亥卯未年起丑宫）
* **方向只看性别**：男顺行、女逆行，与年支阴阳无关

## 在代码里怎么取 [#在代码里怎么取]

按宫名取宫，判断宫里有什么：

<Tabs items="['Rust', 'Python', 'Go']">
  <Tab value="Rust">
    ```rust
    let soul = astrolabe.palace(Palace::Soul).unwrap();

    soul.has(&[StarKey::ZiweiMaj]);                              // 是否同时有这些星
    soul.has_one_of(&[StarKey::ZiweiMaj, StarKey::TianfuMaj]);   // 是否有任意一颗
    soul.has_mutagen(Mutagen::Lu);                               // 是否有化禄
    soul.is_empty();                                             // 是否空宫（无十四主星）

    soul.is_body_palace;        // 是否身宫
    soul.is_original_palace;    // 是否来因宫
    soul.decadal.range;         // 该宫掌管的大限区间，(3, 12)
    soul.ages;                  // 小限经过该宫的虚岁列表
    ```
  </Tab>

  <Tab value="Python">
    ```python
    from x_iztro.enums import PalaceName, MajorStar, Mutagen

    soul = chart.palace(PalaceName.SOUL)

    soul.has([MajorStar.ZIWEI])
    soul.has_one_of([MajorStar.ZIWEI, MajorStar.TIANFU])
    soul.has_mutagen(Mutagen.LU)
    soul.is_empty()

    soul.is_body_palace
    soul.is_original_palace
    soul.decadal.range          # (3, 12)
    soul.ages                   # 例如 [5, 17, 29, 41, 53, 65, 77, 89, 101, 113]
    ```
  </Tab>

  <Tab value="Go">
    ```go
    soul := chart.Palace(iztro.PalaceSoul)

    soul.Has(iztro.StarZiweiMaj)
    soul.HasOneOf(iztro.StarZiweiMaj, iztro.StarTianfuMaj)
    soul.HasMutagen(iztro.MutagenLu)
    soul.IsEmpty()

    soul.IsBodyPalace
    soul.IsOriginalPalace
    soul.Decadal.Range
    soul.Ages
    ```
  </Tab>
</Tabs>

<Callout>
  「空宫」指的是没有十四主星，不代表宫里没有任何星 —— 辅星与杂耀通常还在。
  空宫在解读上要借对宫的星来看，这也是[三方四正](/zh/docs/guide/concepts/surrounded)存在的原因之一。
</Callout>

### 宫名的语言无关标识 [#宫名的语言无关标识]

判断用标识，不要匹配宫名文本 —— 换一种盘面语言，匹配文本的分支会静默失效。

| 宫  | 标识               |
| -- | ---------------- |
| 命宫 | `soulPalace`     |
| 父母 | `parentsPalace`  |
| 福德 | `spiritPalace`   |
| 田宅 | `propertyPalace` |
| 官禄 | `careerPalace`   |
| 仆役 | `friendsPalace`  |
| 迁移 | `surfacePalace`  |
| 疾厄 | `healthPalace`   |
| 财帛 | `wealthPalace`   |
| 子女 | `childrenPalace` |
| 夫妻 | `spousePalace`   |
| 兄弟 | `siblingsPalace` |

另有两个只能用于查询、不会作为宫名出现的标识：`bodyPalace`（身宫）与
`originalPalace`（来因宫），把它们传给取宫方法即可拿到被标记的那一宫。

Python 的 `PalaceName` 枚举与 Go 的 `Palace*` 常量取值就是上表的标识，
在任何盘面语言的盘上都成立。见 [key 契约](/zh/docs/guide/guides/keys)。
