宮位
前言
紫微鬥數中一共有 十二 個宮位,叫做 十二人事宮,囊括了與人有關的其他人和事物,這十二宮按順序分別是 命宮、兄弟宮、夫妻宮、子女宮、財帛宮、疾厄宮、遷移宮、仆役宮、官祿宮、田宅宮、福德宮、父母宮。除了這展示在 星盤 裏的十二宮以外,紫微鬥數還有三個隱藏宮位,它們分別是 身宮、來因宮、暗合宮。每一個宮位有著它特殊的意義,但本頁不詳細展開來敘述。如果你對紫微鬥數的宮位沒有概念,或者想深入研究,可以點擊 宮位系統 查看詳細資料。與宮位地支順時針排列相反,宮位名稱是按逆時針排列的。如下面表格所示:
巳 田宅 | 午 官祿 | 未 仆役 | 申 遷移 |
辰 福德 | 中宮 | 酉 疾厄 | |
卯 父母 | 戌 財帛 | ||
寅 命宮 | 醜 兄弟 | 子 夫妻 | 亥 子女 |
以上表格只是一個例子,
命宮的位置會根據你的出生日期和出生時間的不同而不同,它可能出現在上述任何一個宮位,但這個順序是不會變的。
宮位其實是 宮 和 位 兩個概念組成的,通過 出生日期 和 出生時間 計算出來的,叫 宮,所以你星盤中的 財帛宮 位置在本命盤中是固定的,如果你不知道什麽叫 本命盤,我們強烈建議你點擊 基礎知識掃盲 學習。位 則是一個 相對 位置,比如 夫妻宮 的 財帛位 是 遷移宮。這聽起來有些繞,好消息是,你不需要記憶這些燒腦的信息,只需要有這麽一個概念就可以了。
功能類定義
開發建議
因為宮位是基於星盤而存在的,所以我們並不推薦你手動 new 一個宮位對象,而是使用星盤靜態方法返回的對象使用。星盤的 palaces 屬性包含了十二宮的數據,為了和地支的順序保持一致,它是從 寅宮 開始按照地支順序順時針排列的。
import { astro } from "iztro";
const astrolabe = astro.astrolabeBySolarDate("2000-8-16", 2, "女", true, "zh-CN");你可以有幾種方式從上述 astrolabe 變量裏獲取到目標宮位,請根據實際需求使用:
通過
palaces的下標獲取ts// 獲取卯宮宮位 const palace = astrolabe.palaces[1];通過
FunctionalAstrolabe類的palace()方法傳入宮位索引獲取ts// 獲取卯宮宮位 const palace = astrolabe.palace(1);通過
FunctionalAstrolabe類的palace()方法傳入宮位名稱獲取ts// 獲取命宮 const palace = astrolabe.palace("命宮");
FunctionalPalace
implements
IFuncionalPalace extends Palace該類所有屬性都是繼承自 Palace,然後在接口內定義了一些方法用於對星曜進行分析。
接口定義
tsinterface IFunctionalPalace extends Palace { has: (stars: StarName[]) => boolean; notHave: (stars: StarName[]) => boolean; hasOneOf: (stars: StarName[]) => boolean; hasMutagen: (mutagen: Mutagen): boolean; notHaveMutagen: (mutagen: Mutagen): boolean; isEmpty: (excludeStars?: StarName[]) => boolean; astrolabe: () => IFunctionalAstrolabe | undefined; fliesTo: (to: number | PalaceName, withMutagens: Mutagen | Mutagen[]) => boolean; fliesOneOfTo: (to: number | PalaceName, withMutagens: Mutagen[]) => boolean; notFlyTo: (to: number | PalaceName, withMutagens: Mutagen | Mutagen[]) => boolean; selfMutaged: (withMutagens: Mutagen | Mutagen[]) => boolean; selfMutagedOneOf: (withMutagens?: Mutagen[]) => boolean; notSelfMutaged: (withMutagens?: Mutagen | Mutagen[]) => boolean; mutagedPlaces: () => (IFunctionalPalace | undefined)[]; }屬性
參考 Palace
方法
has() ^1.0.0
用途
判斷某個宮位內是否有傳入的
星曜,要所有星曜都在宮位內才會返回true定義
tstype has = (stars: StarName[]) => boolean;參數
參數 類型 是否必填 默認值 說明 stars StarName[]true- 星曜名稱,可以包含主星、輔星、雜耀 返回值
boolean示例
如果你想查看
命宮是否有紫微星和右弼星tsconst palace = astrolabe.palace("命宮"); const result = palace.has(["紫微", "右弼"]);當然你也可以使用
鏈式調用來簡化代碼tsconst result = astrolabe.palace("命宮").has(["紫微", "右弼"]);
notHave() ^1.0.0
用途
判斷某個宮位內是否沒有傳入的
星曜,要所有星曜都不在宮位內才會返回true定義
tstype notHave = (stars: StarName[]) => boolean;參數
參數 類型 是否必填 默認值 說明 stars StarName[]true- 星曜名稱,可以包含主星、輔星、雜耀 返回值
boolean示例
如果你想查看
命宮是沒有地空星和地劫星tsconst palace = astrolabe.palace("命宮"); const result = palace.notHave(["地空", "地劫"]);當然你也可以使用
鏈式調用來簡化代碼tsconst result = astrolabe.palace("命宮").notHave(["地空", "地劫"]);
hasOneOf() ^1.0.0
用途
判斷某個宮位內是否有傳入
星曜的其中一個,只要命中一個就會返回true定義
tstype hasOneOf = (stars: StarName[]) => boolean;參數
參數 類型 是否必填 默認值 說明 stars StarName[]true- 星曜名稱,可以包含主星、輔星、雜耀 返回值
boolean示例
如果你想查看
命宮是否有天魁星或天鉞星tsconst palace = astrolabe.palace("命宮"); const result = palace.hasOneOf(["天魁", "天鉞"]);當然你也可以使用
鏈式調用來簡化代碼tsconst result = astrolabe.palace("命宮").hasOneOf(["天魁", "天鉞"]);
hasMutagen() ^1.2.0
用途
判斷宮位內是否有生年四化
定義
tstype hasMutagen = (mutagen: Mutagen) => boolean;參數
參數 類型 是否必填 默認值 說明 mutagen Mutagentrue- 四化名稱【祿|權|科|忌】 返回值
boolean示例
如果你想查看
命宮是否有化祿tsconst palace = astrolabe.palace("命宮"); const result = palace.hasMutagen("祿");當然你也可以使用
鏈式調用來簡化代碼tsconst result = astrolabe.palace("命宮").hasMutagen("祿");
notHaveMutagen() ^1.2.0
用途
判斷宮位內是否沒有生年四化
定義
tstype notHaveMutagen = (mutagen: Mutagen) => boolean;參數
參數 類型 是否必填 默認值 說明 mutagen Mutagentrue- 四化名稱【祿|權|科|忌】 返回值
boolean示例
如果你想查看
命宮是不是沒有化忌tsconst palace = astrolabe.palace("命宮"); const result = palace.notHaveMutagen("忌");當然你也可以使用
鏈式調用來簡化代碼tsconst result = astrolabe.palace("命宮").notHaveMutagen("忌");
isEmpty() ^2.0.6
用途
判斷一個宮位是否為空宮(沒有主星),有些派別在宮位內有某些星曜的情況下,是不會將該宮位判斷為空宮的。所以加入一個參數來傳入星曜。
定義
tstype isEmpty = (excludeStars?: StarName[]) => boolean;參數
參數 類型 是否必填 默認值 說明 excludeStars StarName[]false- 星曜名稱數組 返回值
boolean
astrolabe() ^2.1.0
用途
獲取當前宮位所在的星盤對象。
定義
tstype astrolabe = () => IFunctionalAstrolabe | undefined;參數
無
返回值
IFunctionalAstrolabe|undefined;fliesTo() ^2.1.0
用途
判斷是否從源宮位飛化到目標宮位,四化可傳入一個數組或者一個字符串,傳入四化全部飛化到目標宮位即返回
true定義
tstype fliesTo = ( to: number | PalaceName, withMutagens: Mutagen | Mutagen[] ) => boolean;參數
參數 類型 是否必填 默認值 說明 to number|PalaceNametrue- 目標宮位索引或名稱 withMutagens Mutagen|Mutagen[]true- 四化(祿、權、科、忌) 返回值
boolean
fliesOneOfTo() ^2.1.0
用途
判斷是否從源宮位飛化其中一顆四化星到目標宮位,傳入四化只要有一顆飛化到目標宮位即返回
true定義
tstype fliesOneOfTo = ( to: number | PalaceName, withMutagens: Mutagen | Mutagen[] ) => boolean;參數
參數 類型 是否必填 默認值 說明 to number|PalaceNametrue- 目標宮位索引或名稱 withMutagens Mutagen|Mutagen[]true- 四化(祿、權、科、忌) 返回值
boolean
notFlyTo() ^2.1.0
用途
判斷是否沒有從源宮位飛化到目標宮位,四化可傳入一個數組或者一個字符串,傳入四化全部沒有飛化到目標宮位才返回
true定義
tstype notFlyTo = ( to: number | PalaceName, withMutagens: Mutagen | Mutagen[] ) => boolean;參數
參數 類型 是否必填 默認值 說明 to number|PalaceNametrue- 目標宮位索引或名稱 withMutagens Mutagen|Mutagen[]true- 四化(祿、權、科、忌) 返回值
boolean
selfMutaged() ^2.1.0
用途
判斷宮位是否有自化,傳入四化數組時需要全部滿足才返回
true定義
tstype selfMutaged = ( withMutagens: Mutagen | Mutagen[] ) => boolean;參數
參數 類型 是否必填 默認值 說明 withMutagens Mutagen|Mutagen[]true- 四化(祿、權、科、忌) 返回值
boolean
selfMutagedOneOf() ^2.1.0
用途
判斷宮位是否有自化,若不傳入參數則會判斷所有四化,滿足一顆即返回
true定義
tstype selfMutagedOneOf = ( withMutagens: Mutagen | Mutagen[] ) => boolean;參數
參數 類型 是否必填 默認值 說明 withMutagens Mutagen|Mutagen[]true- 四化(祿、權、科、忌) 返回值
boolean
notSelfMutaged() ^2.1.0
用途
判斷宮位是否有自化,如果傳入參數,則只判斷傳入的四化是否有自化,否則將會判斷所有四化
定義
tstype notSelfMutaged = ( withMutagens: Mutagen | Mutagen[] ) => boolean;參數
參數 類型 是否必填 默認值 說明 withMutagens Mutagen|Mutagen[]true- 四化(祿、權、科、忌) 返回值
boolean
mutagedPlaces() ^2.1.0
用途
獲取當前宮位產生四化的4個宮位數組,下標分別對【祿,權,科,忌】
定義
tstype mutagedPlaces = () => (IFunctionalPalace | undefined)[];參數
無
返回值
(
IFunctionalPalace|undefined)[]
FunctionalSurpalaces ^1.2.0
implements
IFunctionalSurpalaces extends SurroundedPalaces該類所有屬性都是繼承自 SurroundedPalaces,然後在接口內定義了一些方法用於對星曜進行分析。
接口定義
tsinterface FunctionalSurpalaces extends SurroundedPalaces { have: (stars: StarName[]) => boolean; notHave: (stars: StarName[]) => boolean; haveOneOf: (stars: StarName[]) => boolean; haveMutagen: (mutagen: Mutagen) => boolean; notHaveMutagen: (mutagen: Mutagen): boolean; }屬性
方法
have()
用途
判斷某個宮三方四正內是否有傳入的
星曜,要所有星曜都在三方四正內才會返回true定義
tstype have = (stars: StarName[]) => boolean;參數
參數 類型 是否必填 默認值 說明 stars StarName[]true- 星曜名稱,可以包含主星、輔星、雜耀 返回值
boolean示例
如果你想查看
命宮三方四正是否有紫微星和右弼星tsconst palaces = astrolabe.surroundedPalaces("命宮"); const result = palaces.have(["紫微", "右弼"]);當然你也可以使用
鏈式調用來簡化代碼tsconst result = astrolabe.surroundedPalaces("命宮").have(["紫微", "右弼"]);
notHave()
用途
判斷某個宮三方四正內是否沒有傳入的
星曜,要所有星曜都不在三方四正內才會返回true定義
tstype notHave = (stars: StarName[]) => boolean;參數
參數 類型 是否必填 默認值 說明 stars StarName[]true- 星曜名稱,可以包含主星、輔星、雜耀 返回值
boolean示例
如果你想查看
命宮三方四正是否沒有地空星和地劫星tsconst palaces = astrolabe.surroundedPalaces("命宮"); const result = palaces.notHave(["地空", "地劫"]);當然你也可以使用
鏈式調用來簡化代碼tsconst result = astrolabe.surroundedPalaces("命宮").notHave(["地空", "地劫"]);
haveMutagen()
用途
判斷宮位三方四正內是否有生年四化
定義
tstype haveMutagen = (mutagen: Mutagen) => boolean;參數
參數 類型 是否必填 默認值 說明 mutagen Mutagentrue- 四化名稱【祿|權|科|忌】 返回值
boolean示例
如果你想查看
命宮三方四正是否有化祿tsconst palaces = astrolabe.surroundedPalaces("命宮"); const result = palaces.haveMutagen("祿");當然你也可以使用
鏈式調用來簡化代碼tsconst result = astrolabe.surroundedPalaces("命宮").haveMutagen("祿");
notHaveMutagen()
用途
判斷宮位三方四正內是否沒有生年四化
定義
tstype notHaveMutagen = (mutagen: Mutagen) => boolean;參數
參數 類型 是否必填 默認值 說明 mutagen Mutagentrue- 四化名稱【祿|權|科|忌】 返回值
boolean示例
如果你想查看
命宮三方四正是不是沒有化忌tsconst palace = astrolabe.surroundedPalaces("命宮"); const result = palace.notHaveMutagen("忌");當然你也可以使用
鏈式調用來簡化代碼tsconst result = astrolabe.surroundedPalaces("命宮").notHaveMutagen("忌");