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