運限
^2.6.2 運限の取得には、命盤の生成時に保存された設定と言語が使われます。グローバルの既定値を変更したり別の命盤を作ったりしても、既存の命盤での取得結果は変わりません。horoscope()には有効なDateオブジェクトか日付文字列を渡せます。日付を省略すると、呼び出し時の現在時刻を使います。時刻のインデックスを明示する場合は0~12の整数が必要です。無効な日付や時刻インデックスはエラーになります。はじめに
紫微斗数の運限には、大限、小限、流年、流月、流日、流時、分単位の運限、秒単位の運限などがあります。概念と活用法は運限の説明をご覧ください。iztroは大限、小限、流年、流月、流日、流時を提供します。そのうち大限、流年、流月、流日、流時には流曜と四化があります。流月、流日、流時の流曜はv2.4.4から提供されています。小限には独立した流曜がなく、小限の四化はその宮の宮干から計算されます。
ヒント
運限の年・月の干支の切り替わりは、命盤に保存されたhoroscopeDivideの設定に従います。小限の数え年の切り替わりはageDivideで決まります。
クラスと分析メソッド
開発提案
運限は命盤に基づくため、newで直接生成するより、命盤のインスタンスから取得してください。命盤のhoroscope()メソッドが運限のオブジェクトを返します。
import { astro } from "iztro";
const astrolabe = astro.astrolabeBySolarDate("2000-8-16", 2, "女", true, "zh-CN");
const horoscope = astrolabe.horoscope('2023-10-26', 2);上記のコードを実行すると、FunctionalHoroscope のインスタンスが返されます。
FunctionalHoroscope
implements
IFunctionalHoroscope extends HoroscopeこのクラスのプロパティはすべてHoroscopeから継承され、インターフェースには運限の星曜を分析するメソッドが加わります。
インターフェースの定義
ts^2.6.1interface IFunctionalHoroscope extends Horoscope { toJSON: () => Horoscope; agePalace: () => FunctionalPalace | undefined; palace: (palaceName: PalaceName, scope: Scope) => FunctionalPalace | undefined; surroundPalaces: (palaceName: PalaceName, scope: Scope) => FunctionalSurpalaces | undefined; hasHoroscopeStars: (palaceName: PalaceName, scope: Scope, horoscopeStar: StarName[]) => boolean; notHaveHoroscopeStars: (palaceName: PalaceName, scope: Scope, horoscope: StarName[]) => boolean; hasOneOfHoroscopeStars: (palaceName: PalaceName, scope: Scope, horoscopeStar: StarName[]) => boolean; hasHoroscopeMutagen: (palaceName: PalaceName, scope: Scope, horoscopeMutagen: Mutagen) => boolean; }palaceNameには、命盤の出力言語にかかわらず、設定されたどの言語の宮名でも渡せます。例えば、中国語で出力する命盤にも英語の宮名"soul"を指定できます。プロパティ
参照 Horoscope
メソッド
toJSON() ^2.6.0
目的
機能付き運限のオブジェクトを通常のJSONオブジェクトに変換します。分析メソッドや所属する命盤などの実行時参照は含めず、循環参照も安全に除外します。
定義
tstype toJSON = () => Horoscope;パラメータ
なし
戻り値
使用例
tsimport { astro } from "iztro"; const astrolabe = astro.bySolar("2000-8-16", 2, "女"); const data = astrolabe.horoscope("2023-8-19").toJSON();
agePalace() v1.3.0
目的
小限が位置する宮を取得します。定義
tstype agePalace: () => FunctionalPalace | undefined;パラメータ
なし
戻り値
FunctionalPalace|undefined使用例
tsimport { astro } from "iztro"; const astrolabe = astro .astrolabeBySolarDate("2000-8-16", 2, "女", true, "zh-CN"); const agePalace = astrolabe .horoscope('2023-10-26', 2) .agePalace();
palace() v1.3.0
目的
指定した運限の宮を取得します。
定義
tstype palace = ( palaceName: PalaceName, scope: Scope ) => FunctionalPalace | undefined;パラメータ
パラメータ 型 必須 デフォルト値 説明 palaceName PalaceNametrue- 宮の名称 scope Scopetrue- 運限の名称 戻り値
FunctionalPalace|undefined使用例
大限の夫妻宮を取得します。tsimport { astro } from "iztro"; const astrolabe = astro .astrolabeBySolarDate("2000-8-16", 2, "女", true, "zh-CN"); const spousePalace = astrolabe .horoscope('2023-10-26', 2) .palace("夫妻", "decadal");
surroundPalaces() ^1.3.0
目的
指定した運限の宮について、三方四正に当たる宮を取得します。
定義
tstype surroundPalaces = ( palaceName: PalaceName, scope: Scope ) => FunctionalSurpalaces | undefined;パラメータ
パラメータ 型 必須 デフォルト値 説明 palaceName PalaceNametrue- 宮の名称 scope Scopetrue- 運限の名称 戻り値
FunctionalSurpalaces|undefined使用例
流年夫妻宮の三方四正に当たる宮を取得します。tsimport { astro } from "iztro"; const astrolabe = astro .astrolabeBySolarDate("2000-8-16", 2, "女", true, "zh-CN"); const surpalaces = astrolabe .horoscope('2023-10-26', 2) .surroundPalaces("夫妻", "yearly");
hasHoroscopeStars() ^1.3.0
目的
指定した運限の宮に流曜があるかを判定します。指定した星曜が すべて存在する 場合のみtrueを返します。
定義
tstype hasHoroscopeStars = ( palaceName: PalaceName, scope: Scope, horoscopeStar: StarName[] ) => boolean;パラメータ
パラメータ 型 必須 デフォルト値 説明 palaceName PalaceNametrue- 宮の名称 scope Scopetrue- 運限の名称 horoscopeStar StarName[]true- 流曜の配列 戻り値
boolean使用例
流年夫妻宮に年の喜と年の曲の両方があるか確認します。tsimport { astro } from "iztro"; const astrolabe = astro .astrolabeBySolarDate("2000-8-16", 2, "女", true, "zh-CN"); const flag = astrolabe .horoscope('2023-10-26', 2) .hasHoroscopeStars("夫妻", "yearly", ["流喜", "流曲"]);
notHaveHoroscopeStars() ^1.3.2
目的
指定した運限の宮に、指定した流曜が 一つも存在しない 場合のみtrueを返します。
定義
tstype notHaveHoroscopeStars = ( palaceName: PalaceName, scope: Scope, horoscope: StarName[] ) => boolean;パラメータ
パラメータ 型 必須 デフォルト値 説明 palaceName PalaceNametrue- 宮の名称 scope Scopetrue- 運限の名称 horoscopeStar StarName[]true- 流曜の配列 戻り値
boolean使用例
流年夫妻宮に年の喜も年の曲もないか確認します。tsimport { astro } from "iztro"; const astrolabe = astro .astrolabeBySolarDate("2000-8-16", 2, "女", true, "zh-CN"); const flag = astrolabe .horoscope('2023-10-26', 2) .notHaveHoroscopeStars("夫妻", "yearly", ["流喜", "流曲"]);
hasOneOfHoroscopeStars() ^1.3.3
目的
指定した運限の宮に、指定した流曜が 一つでも存在する 場合にtrueを返します。
定義
tstype hasOneOfHoroscopeStars= (palaceName: PalaceName, scope: Scope, horoscopeStar: StarName[]) => boolean;パラメータ
パラメータ 型 必須 デフォルト値 説明 palaceName PalaceNametrue- 宮の名称 scope Scopetrue- 運限の名称 horoscopeStar StarName[]true- 流曜の配列 戻り値
boolean使用例
流年夫妻宮に年の喜か年の曲の少なくとも一方があるか確認します。tsimport { astro } from "iztro"; const astrolabe = astro .astrolabeBySolarDate("2000-8-16", 2, "女", true, "zh-CN"); const flag = astrolabe .horoscope('2023-10-26', 2) .hasOneOfHoroscopeStars("夫妻", "yearly", ["流喜", "流曲"]);
hasHoroscopeMutagen() ^1.3.4
目的
指定した運限の四化が、対象の宮にあるか確認します。
定義
tstype hasHoroscopeMutagen = (palaceName: PalaceName, scope: Scope, horoscopeMutagen: Mutagen) => boolean;パラメータ
パラメータ 型 必須 デフォルト値 説明 palaceName PalaceNametrue- 宮の名称 scope Scopetrue- 運限の名称 horoscopeMutagen Mutagentrue- 四化 戻り値
boolean使用例
流年夫妻宮に祿があるか確認します。tsimport { astro } from "iztro"; const astrolabe = astro .astrolabeBySolarDate("2000-8-16", 2, "女", true, "zh-CN"); const flag = astrolabe .horoscope('2023-10-26', 2) .hasHoroscopeMutagen("夫妻", "yearly", "禄");