Cung(宮位)
Lời mở đầu
Tử Vi Đẩu Số(紫微斗數) có mười hai cung, gọi chung là mười hai cung nhân sự(十二人事宮), biểu thị những người và các mặt của đời sống có liên quan đến một người. Theo thứ tự, đó là Mệnh(命宮), Huynh Đệ(兄弟), Phu Thê(夫妻), Tử Nữ(子女), Tài Bạch(財帛), Tật Ách(疾厄), Thiên Di(遷移), Nô Bộc(僕役), Quan Lộc(官祿), Điền Trạch(田宅), Phúc Đức(福德) và Phụ Mẫu(父母). Ngoài mười hai cung hiển thị trên lá số, còn có ba cung ẩn là Thân(身宮), Lai Nhân(來因) và cung ám hợp(暗合宮). Mỗi cung có ý nghĩa riêng, nhưng trang API này không trình bày chi tiết. Để tìm hiểu từ cơ bản đến chuyên sâu, hãy xem Hệ thống cung. Địa chi được xếp theo chiều kim đồng hồ, còn tên cung được xếp ngược chiều kim đồng hồ, như ví dụ trong bảng dưới đây:
Tỵ(巳)Điền Trạch(田宅) | Ngọ(午)Quan Lộc(官祿) | Mùi(未)Nô Bộc(僕役) | Thân(申)Thiên Di(遷移) |
Thìn(辰)Phúc Đức(福德) | Trung cung | Dậu(酉)Tật Ách(疾厄) | |
Mão(卯)Phụ Mẫu(父母) | Tuất(戌)Tài Bạch(財帛) | ||
Dần(寅)Mệnh(命宮) | Sửu(丑)Huynh Đệ(兄弟) | Tý(子)Phu Thê(夫妻) | Hợi(亥)Tử Nữ(子女) |
Bảng trên chỉ là ví dụ. Vị trí cung
Mệnh(命宮) thay đổi theongày sinhvàgiờ sinh. Cung này có thể nằm ở bất kỳ vị trí nào trong mười hai vị trí trên, nhưng thứ tự tên các cung không thay đổi.
Khái niệm cung vị gồm hai phần: cung và vị trí. Phần được xác định từ ngày sinh và giờ sinh là cung. Vì vậy, cung Tài Bạch(財帛) có vị trí cố định trên lá số lúc sinh. Nếu chưa quen với khái niệm lá số bản mệnh(本命盤), bạn nên đọc Kiến thức cơ bản trước. Còn vị trí mang tính tương đối, được xác định theo cung dùng làm mốc. Chẳng hạn, lấy cung Phu Thê(夫妻) làm mốc thì vị trí tài bạch(財帛位) của cung này nằm tại cung Thiên Di(遷移). Điều này có vẻ phức tạp, nhưng bạn chỉ cần hiểu sự khác biệt giữa hai khái niệm, không cần ghi nhớ mọi mối quan hệ.
Lớp và phương thức phân tích
Đề xuất phát triển
Cung thuộc về một lá số, vì vậy thay vì tự tạo đối tượng cung bằng new, hãy lấy đối tượng từ lá số do phương thức lập lá số tĩnh trả về. Thuộc tính palaces của lá số chứa dữ liệu của mười hai cung, được xếp theo thứ tự địa chi theo chiều kim đồng hồ, bắt đầu từ cung Dần(寅宮).
import { astro } from "iztro";
const astrolabe = astro.astrolabeBySolarDate("2000-8-16", 2, "女", true, "zh-CN");Bạn có thể lấy cung(宮位) mục tiêu từ biến astrolabe ở trên bằng nhiều cách. Vui lòng sử dụng nó theo nhu cầu thực tế của bạn:
Truy cập
palacesbằng chỉ số mảngts// 获取卯宫宫位 const palace = astrolabe.palaces[1];Trên đối tượng
FunctionalAstrolabe, gọi phương thứcpalace()và truyềnchỉ mụccủa cung.ts// 获取卯宫宫位 const palace = astrolabe.palace(1);Trên đối tượng
FunctionalAstrolabe, gọi phương thứcpalace()và truyềnTêncủa cung.ts// 获取命宫 const palace = astrolabe.palace("命宫");
FunctionalPalace
implements
IFunctionalPalace extends PalaceLớp này kế thừa các thuộc tính từ Palace và bổ sung phương thức phân tích sao trong cung.
Định nghĩa giao diện
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)[]; }Thuộc tính
Tham khảo Palace
Phương thức
toJSON() ^2.6.0
Mục đích
Chuyển đối tượng cung có chức năng phân tích thành đối tượng JSON thông thường. Kết quả không chứa phương thức phân tích hay tham chiếu lúc chạy, chẳng hạn tham chiếu đến lá số liên quan. Tham chiếu vòng được bỏ qua an toàn.
Định nghĩa
tstype toJSON = () => Palace;Tham số
Không có
Giá trị trả về
Ví dụ
tsconst data = astrolabe.palace("命宫")?.toJSON();
has() ^1.0.0
Mục đích
Kiểm tra các
sao(星曜) được chỉ định trong một cung. Chỉ khitất cả sao được chỉ địnhđều có mặttrong cung đó thì phương thức mới trả vềtrue.Định nghĩa
tstype has = (stars: StarName[]) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả stars StarName[]true- Tên sao; có thể gồm chính tinh(主星), phụ tinh(輔星) và tạp diệu(雜曜) Giá trị trả về
booleanVí dụ
Nếu bạn muốn xem
Mệnh(命宮) cóTử Vi(紫微) vàHữu Bật(右弼) khôngtsconst palace = astrolabe.palace("命宫"); const result = palace.has(["紫微", "右弼"]);Bạn cũng có thể dùng
gọi phương thức nối tiếpđể viết mã gọn hơn.tsconst result = astrolabe.palace("命宫").has(["紫微", "右弼"]);
notHave() ^1.0.0
Mục đích
Kiểm tra xem cung có thiếu toàn bộ
sao(星曜) được chỉ định hay không. Phảikhông có sao nàotrong số đó hiện diện thì mới trả vềtrue.Định nghĩa
tstype notHave = (stars: StarName[]) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả stars StarName[]true- Tên sao; có thể gồm chính tinh(主星), phụ tinh(輔星) và tạp diệu(雜曜) Giá trị trả về
booleanVí dụ
Để kiểm tra cung
Mệnh(命宮) không có sao nào trong hai saoĐịa Không(地空) vàĐịa Kiếp(地劫):tsconst palace = astrolabe.palace("命宫"); const result = palace.notHave(["地空", "地劫"]);Bạn cũng có thể dùng
gọi phương thức nối tiếpđể viết mã gọn hơn.tsconst result = astrolabe.palace("命宫").notHave(["地空", "地劫"]);
hasOneOf() ^1.0.0
Mục đích
Kiểm tra
sao(星曜) đầu vào trong cung. Chỉ cầnkhớp ít nhất một saolà trả vềtrue.Định nghĩa
tstype hasOneOf = (stars: StarName[]) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả stars StarName[]true- Tên sao; có thể gồm chính tinh(主星), phụ tinh(輔星) và tạp diệu(雜曜) Giá trị trả về
booleanVí dụ
Nếu bạn muốn xem
Mệnh(命宮) cóThiên Khôi(天魁) hayThiên Việt(天鉞)tsconst palace = astrolabe.palace("命宫"); const result = palace.hasOneOf(["天魁", "天钺"]);Bạn cũng có thể dùng
gọi phương thức nối tiếpđể viết mã gọn hơn.tsconst result = astrolabe.palace("命宫").hasOneOf(["天魁", "天钺"]);
hasMutagen() ^1.2.0
Mục đích
Kiểm tra cung có loại tứ hóa năm sinh(生年四化) được chỉ định hay không.
Định nghĩa
tstype hasMutagen = (mutagen: Mutagen) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả mutagen Mutagentrue- Tên tứ hóa: Lộc(祿), Quyền(權), Khoa(科) hoặc Kỵ(忌) Giá trị trả về
booleanVí dụ
Nếu bạn muốn xem
Mệnh(命宮) cóLộc(化祿) khôngtsconst palace = astrolabe.palace("命宫"); const result = palace.hasMutagen("禄");Bạn cũng có thể dùng
gọi phương thức nối tiếpđể viết mã gọn hơn.tsconst result = astrolabe.palace("命宫").hasMutagen("禄");
notHaveMutagen() ^1.2.0
Mục đích
Kiểm tra cung có thiếu loại tứ hóa năm sinh(生年四化) được chỉ định hay không.
Định nghĩa
tstype notHaveMutagen = (mutagen: Mutagen) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả mutagen Mutagentrue- Tên tứ hóa: Lộc(祿), Quyền(權), Khoa(科) hoặc Kỵ(忌) Giá trị trả về
booleanVí dụ
Để kiểm tra cung
Mệnh(命宮) không cóKỵ(化忌):tsconst palace = astrolabe.palace("命宫"); const result = palace.notHaveMutagen("忌");Bạn cũng có thể dùng
gọi phương thức nối tiếpđể viết mã gọn hơn.tsconst result = astrolabe.palace("命宫").notHaveMutagen("忌");
isEmpty() ^2.0.6
Mục đích
Kiểm tra một cung có phải cung vô chính diệu(空宮), tức không có chính tinh(主星), hay không. Một số trường phái không coi cung là vô chính diệu nếu có những sao nhất định khác. Tham số danh sách sao tùy chọn cho phép chỉ định các trường hợp ngoại lệ đó.
Định nghĩa
tstype isEmpty = (excludeStars?: StarName[]) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả excludeStars StarName[]false- Mảng tên sao Giá trị trả về
boolean
astrolabe() ^2.1.0
Mục đích
Trả về đối tượng lá số chứa cung hiện tại.
Định nghĩa
tstype astrolabe = () => IFunctionalAstrolabe | undefined;Tham số
Không có
Giá trị trả về
IFunctionalAstrolabe|undefined;fliesTo() ^2.1.0
Mục đích
Kiểm tra tứ hóa phi từ cung nguồn sang cung đích. Có thể truyền một loại hoặc một mảng; tất cả tứ hóa đầu vào phải phi tới cung đích mới trả về
true.Định nghĩa
tstype fliesTo = ( to: number | PalaceName, withMutagens: Mutagen | Mutagen[] ) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả to number|PalaceNametrue- Chỉ số hoặc tên cung đích withMutagens Mutagen|Mutagen[]true- Tứ hóa: Lộc(祿), Quyền(權), Khoa(科), Kỵ(忌) Giá trị trả về
boolean
fliesOneOfTo() ^2.1.0
Mục đích
Trả về
truenếu ít nhất một tứ hóa đầu vào phi từ cung nguồn sang cung đích.Định nghĩa
tstype fliesOneOfTo = ( to: number | PalaceName, withMutagens: Mutagen | Mutagen[] ) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả to number|PalaceNametrue- Chỉ số hoặc tên cung đích withMutagens Mutagen|Mutagen[]true- Tứ hóa: Lộc(祿), Quyền(權), Khoa(科), Kỵ(忌) Giá trị trả về
boolean
notFlyTo() ^2.1.0
Mục đích
Kiểm tra không có tứ hóa đầu vào nào phi từ cung nguồn sang cung đích. Nhận một loại hoặc một mảng; mọi loại được chỉ định đều không phi tới đích thì mới trả về
true.Định nghĩa
tstype notFlyTo = ( to: number | PalaceName, withMutagens: Mutagen | Mutagen[] ) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả to number|PalaceNametrue- Chỉ số hoặc tên cung đích withMutagens Mutagen|Mutagen[]true- Tứ hóa: Lộc(祿), Quyền(權), Khoa(科), Kỵ(忌) Giá trị trả về
boolean
selfMutaged() ^2.1.0
Mục đích
Kiểm tra tự hóa(自化) trong cung. Khi truyền một mảng, tất cả tứ hóa được chỉ định phải có tự hóa thì mới trả về
true.Định nghĩa
tstype selfMutaged = ( withMutagens: Mutagen | Mutagen[] ) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả withMutagens Mutagen|Mutagen[]true- Tứ hóa: Lộc(祿), Quyền(權), Khoa(科), Kỵ(忌) Giá trị trả về
boolean
selfMutagedOneOf() ^2.1.0
Mục đích
Kiểm tra tự hóa(自化). Nếu không truyền tham số, xét cả bốn loại; chỉ cần một loại khớp là trả về
true.Định nghĩa
tstype selfMutagedOneOf = ( withMutagens?: Mutagen[] ) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả withMutagens Mutagen[]false- Tứ hóa: Lộc(祿), Quyền(權), Khoa(科), Kỵ(忌) Giá trị trả về
boolean
notSelfMutaged() ^2.1.0
Mục đích
Kiểm tra trong cung không có tự hóa(自化) nào thuộc các loại được chỉ định. Nếu không truyền đối số, kiểm tra cả bốn loại tứ hóa.
Định nghĩa
tstype notSelfMutaged = ( withMutagens?: Mutagen | Mutagen[] ) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả withMutagens Mutagen|Mutagen[]false- Tứ hóa: Lộc(祿), Quyền(權), Khoa(科), Kỵ(忌) Giá trị trả về
boolean
mutagedPlaces() ^2.1.0
Mục đích
Trả về mảng gồm bốn cung nhận tứ hóa từ cung hiện tại, theo thứ tự Lộc(化祿), Quyền(化權), Khoa(化科), Kỵ(化忌).
Định nghĩa
tstype mutagedPlaces = () => (IFunctionalPalace | undefined)[];Tham số
Không có
Giá trị trả về
(
IFunctionalPalace|undefined)[]
FunctionalSurpalaces ^1.2.0
implements
IFunctionalSurpalaces extends SurroundedPalacesLớp này kế thừa các thuộc tính từ SurroundedPalaces và bổ sung phương thức phân tích sao trong phạm vi tam phương tứ chính.
Định nghĩa giao diện
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; }Thuộc tính
Tham khảo SurroundedPalaces
Phương thức
toJSON() ^2.6.0
Mục đích
Chuyển đối tượng tam phương tứ chính(三方四正) có chức năng phân tích thành đối tượng JSON thông thường. Kết quả không chứa phương thức phân tích hay tham chiếu lúc chạy. Tham chiếu vòng được bỏ qua an toàn.
Định nghĩa
tstype toJSON = () => SurroundedPalaces;Tham số
Không có
Giá trị trả về
Ví dụ
tsconst data = astrolabe.surroundedPalaces("命宫").toJSON();
have()
Mục đích
Kiểm tra các
sao(星曜) được chỉ định trong phạm vi tam phương tứ chính(三方四正) của cung. Chỉ khitất cả sao được chỉ địnhđều có mặttrong phạm vi này thì phương thức mới trả vềtrue.Định nghĩa
tstype have = (stars: StarName[]) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả stars StarName[]true- Tên sao; có thể gồm chính tinh(主星), phụ tinh(輔星) và tạp diệu(雜曜) Giá trị trả về
booleanVí dụ
Để kiểm tra tam phương tứ chính(三方四正) của cung
Mệnh(命宮) có cảTử Vi(紫微) vàHữu Bật(右弼):tsconst palaces = astrolabe.surroundedPalaces("命宫"); const result = palaces.have(["紫微", "右弼"]);Bạn cũng có thể dùng
gọi phương thức nối tiếpđể viết mã gọn hơn.tsconst result = astrolabe.surroundedPalaces("命宫").have(["紫微", "右弼"]);
notHave()
Mục đích
Kiểm tra
sao(星曜) đầu vào trong phạm vi tam phương tứ chính(三方四正) của cung. Phảikhông có sao nàotrong số đó hiện diện trong toàn bộ phạm vi này thì mới trả vềtrue.Định nghĩa
tstype notHave = (stars: StarName[]) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả stars StarName[]true- Tên sao; có thể gồm chính tinh(主星), phụ tinh(輔星) và tạp diệu(雜曜) Giá trị trả về
booleanVí dụ
Để kiểm tra tam phương tứ chính(三方四正) của cung
Mệnh(命宮) không có sao nào trong hai saoĐịa Không(地空) vàĐịa Kiếp(地劫):tsconst palaces = astrolabe.surroundedPalaces("命宫"); const result = palaces.notHave(["地空", "地劫"]);Bạn cũng có thể dùng
gọi phương thức nối tiếpđể viết mã gọn hơn.tsconst result = astrolabe.surroundedPalaces("命宫").notHave(["地空", "地劫"]);
haveOneOf()
Mục đích
Kiểm tra tam phương tứ chính(三方四正) của cung có bất kỳ sao nào được chỉ định hay không. Chỉ cần có một sao trong phạm vi này là trả về
true.Định nghĩa
tstype haveOneOf = (stars: StarName[]) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả stars StarName[]true- Tên sao; có thể gồm chính tinh(主星), phụ tinh(輔星) và tạp diệu(雜曜) Giá trị trả về
booleanVí dụ
Kiểm tra tam phương tứ chính(三方四正) của cung
Mệnh(命宮) cóThiên Khôi(天魁) hoặcThiên Việt(天鉞):tsconst result = astrolabe.surroundedPalaces("命宫").haveOneOf(["天魁", "天钺"]);
haveMutagen()
Mục đích
Kiểm tra trong tam phương tứ chính(三方四正) của cung có loại tứ hóa năm sinh(生年四化) được chỉ định hay không.
Định nghĩa
tstype haveMutagen = (mutagen: Mutagen) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả mutagen Mutagentrue- Tên tứ hóa: Lộc(祿), Quyền(權), Khoa(科) hoặc Kỵ(忌) Giá trị trả về
booleanVí dụ
Để kiểm tra tam phương tứ chính(三方四正) của cung
Mệnh(命宮) cóLộc(化祿):tsconst palaces = astrolabe.surroundedPalaces("命宫"); const result = palaces.haveMutagen("禄");Bạn cũng có thể dùng
gọi phương thức nối tiếpđể viết mã gọn hơn.tsconst result = astrolabe.surroundedPalaces("命宫").haveMutagen("禄");
notHaveMutagen()
Mục đích
Kiểm tra toàn bộ tam phương tứ chính(三方四正) của cung đều không có loại tứ hóa năm sinh(生年四化) được chỉ định hay không.
Định nghĩa
tstype notHaveMutagen = (mutagen: Mutagen) => boolean;Tham số
Tham số Kiểu Bắt buộc? Giá trị mặc định Mô tả mutagen Mutagentrue- Tên tứ hóa: Lộc(祿), Quyền(權), Khoa(科) hoặc Kỵ(忌) Giá trị trả về
booleanVí dụ
Để kiểm tra toàn bộ tam phương tứ chính(三方四正) của cung
Mệnh(命宮) đều không cóKỵ(化忌):tsconst palace = astrolabe.surroundedPalaces("命宫"); const result = palace.notHaveMutagen("忌");Bạn cũng có thể dùng
gọi phương thức nối tiếpđể viết mã gọn hơn.tsconst result = astrolabe.surroundedPalaces("命宫").notHaveMutagen("忌");