宮位
はじめに
紫微斗数には 12 個の宮があり、まとめて 十二人事宮 と呼ばれます。一人の人間に関わる人々や生活のさまざまな側面を表し、順に 命宮、兄弟、夫妻、子女、財帛、疾厄、遷移、僕役、官祿、田宅、福德、父母 と並びます。命盤に表示されるこの十二宮に加え、身宮、来因、暗合宮 という三つの隠れた宮もあります。各宮の意味は、このAPIのページでは詳しく扱いません。基本的な概念や詳しい説明は宮の体系を参照してください。地支が時計回りに並ぶのに対し、宮の名前は反時計回りに並びます。以下の表はその例です。
巳田宅 | 午官祿 | 未僕役 | 申遷移 |
辰福德 | 中宮 | 酉疾厄 | |
卯父母 | 戌財帛 | ||
寅命宮 | 丑兄弟 | 子夫妻 | 亥子女 |
上の表は一例です。
命宮の位置は生年月日と出生時間によって変わり、十二のどの位置にも配置されます。ただし、宮の名前の並び順は変わりません。
宮位という言葉には 宮 と 位置 という二つの概念があります。生年月日 と 出生時間 から配置を計算する対象が 宮 です。そのため、出生時の命盤では 財帛 宮の位置は固定されています。本命盤 という概念になじみがなければ、まず基礎知識を読んでください。一方、位置 は基準となる宮によって決まる 相対的な 位置です。例えば、夫妻 宮を基準とすると、その 財帛の位置 に当たるのは 遷移 宮です。少し複雑に感じるかもしれませんが、すべての関係を暗記する必要はなく、この違いを理解しておけば十分です。
クラスと分析メソッド
開発提案
宮は命盤に属するため、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
IFunctionalPalace extends PalaceこのクラスはPalaceのプロパティを継承し、宮内の星曜を分析するメソッドを追加します。
インターフェースの定義
tsinterface IFunctionalPalace extends Palace { toJSON: () => 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
メソッド
toJSON() ^2.6.0
目的
分析機能を持つ宮オブジェクトを通常のJSONオブジェクトに変換します。戻り値には、分析メソッドや関連する命盤などへの実行時参照は含まれません。循環参照は安全に除外されます。
定義
tstype toJSON = () => Palace;パラメータ
なし
戻り値
例
tsconst data = astrolabe.palace("命宫")?.toJSON();
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[] ) => boolean;パラメータ
パラメータ 型 必須 デフォルト値 説明 withMutagens Mutagen[]false- 四化(祿・權・科・忌) 戻り値
boolean
notSelfMutaged() ^2.1.0
目的
宮に指定した四化の自化が一つもないかを判定します。引数を省略した場合は、四種類すべてを確認します。
定義
tstype notSelfMutaged = ( withMutagens?: Mutagen | Mutagen[] ) => boolean;パラメータ
パラメータ 型 必須 デフォルト値 説明 withMutagens Mutagen|Mutagen[]false- 四化(祿・權・科・忌) 戻り値
boolean
mutagedPlaces() ^2.1.0
目的
現在の宮から生じる四化が入る四つの宮を配列で返します。添字の順序は化禄、化権、化科、化忌です。
定義
tstype mutagedPlaces = () => (IFunctionalPalace | undefined)[];パラメータ
なし
戻り値
(
IFunctionalPalace|undefined)[]
FunctionalSurpalaces ^1.2.0
implements
IFunctionalSurpalaces extends SurroundedPalacesこのクラスはSurroundedPalacesのプロパティを継承し、三方四正の星曜を分析するメソッドを追加します。
インターフェースの定義
tsinterface FunctionalSurpalaces extends SurroundedPalaces { toJSON: () => SurroundedPalaces; have: (stars: StarName[]) => boolean; notHave: (stars: StarName[]) => boolean; haveOneOf: (stars: StarName[]) => boolean; haveMutagen: (mutagen: Mutagen) => boolean; notHaveMutagen: (mutagen: Mutagen): boolean; }プロパティ
メソッド
toJSON() ^2.6.0
目的
分析機能を持つ三方四正オブジェクトを通常のJSONオブジェクトに変換します。戻り値には分析メソッドや実行時参照は含まれません。循環参照は安全に除外されます。
定義
tstype toJSON = () => SurroundedPalaces;パラメータ
なし
戻り値
例
tsconst data = astrolabe.surroundedPalaces("命宫").toJSON();
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(["地空", "地劫"]);
haveOneOf()
目的
宮の三方四正に指定した星曜が一つでもあるかを判定します。その範囲内に一つでもあれば
trueを返します。定義
tstype haveOneOf = (stars: StarName[]) => boolean;パラメータ
パラメータ 型 必須 デフォルト値 説明 stars StarName[]true- 星曜の名称。主星・輔星・雑曜を指定できます 戻り値
boolean例
命宮の三方四正に天魁または天鉞があるかを確認します:tsconst result = astrolabe.surroundedPalaces("命宫").haveOneOf(["天魁", "天钺"]);
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("忌");