Chuyện là đợt vừa rồi mình với ông anh mới làm xong một dự án tìm hiểu về Tử Vi, đề bài đơn giản chỉ là từ thông tin cá nhân của một người: bao gồm tên tuổi, ngày tháng năm sinh, giới tính, giờ sinh, từ đó tìm cách lập ra được một lá số tử vi của người đó.
Nghe thì có vẻ đơn giản, nhưng mà lúc làm mình cũng phải khá mất công tìm hiểu cũng như biết được chính xác cách xác định vị trí các Sao (gọi là an sao), rồi Chính Tinh, Phụ Tinh, Tràng Sinh các thứ, rồi đến đủ loại sao Lưu, Tứ Đức, Tứ Hóa,…
Thực ra trong quá trình làm, mình thấy nó không hề khó, chỉ hơi vướng mắc chỗ logic an sao, vì mỗi phái (Nam phái, Bắc phái) lại có một cách thức, phương pháp an sao khác nhau, nên nếu sử dụng không đúng cách thức thì sẽ an sao sai và lá số lúc đó sẽ bị sai lệch, việc luận giải cũng trở nên không chính xác.
Được rồi, bây giờ mình sẽ đưa các bạn đi lần lượt tìm hiểu những thứ cơ bản nhất, sau đấy là đến cách thức lập một lá số tử vi như thế nào, còn về cách luận giải thì nó khá là khó nên mình sẽ không đề cập nó quá sâu.
Tử Vi là gì
Tử Vi là một bộ môn nghiên cứu, phỏng đoán, luận giải về tính cách, hoàn cảnh, vận mệnh của con người dựa trên căn cứ triết lý Kinh Dịch, thuyết âm dương ngũ hành, thiên can, địa chi,…
Theo quan niệm của tử vi, các yếu tố thiên văn như vị trí các hành tinh (Sao) và các khía cạnh liên quan trong biểu đồ ngày sinh của một người có thể tác động đến tính cách, sự nghiệp, mối quan hệ, gia đình, bạn bè, công việc và các sự kiện khác trong cuộc sống của họ.
Các chuyên gia tử vi có thể đọc và phân tích biểu đồ ngày sinh để đưa ra dự đoán và khuyến nghị cho một người dựa trên các yếu tố thiên văn được xem là có liên quan đó. Từ đó có thể giúp đưa ra định hướng về cuộc sống, công việc, định hình phong cách sống cho người khác được đúng đắn.
Tuy nhiên, tử vi không được coi là một khoa học chính thống và không có bằng chứng khoa học rõ ràng để chứng minh tính chính xác của nó. Nhiều người xem tử vi như một hình thức giải trí hoặc tìm hiểu về bản thân, trong khi những người khác tin rằng nó có thể cung cấp thông tin hữu ích về vận mệnh và tương lai.
Tuy nhiên xét về góc độ cá nhân thì mình thấy Tử Vi, Bát Tự (Tứ Trụ Tử Bình) thuộc những bộ môn huyền học có độ chính xác cao, và mình có khá nhiều sự tin tưởng vào bộ môn này, tuy nhiên việc ứng nghiệm một lá số vào một người còn phụ thuộc vào nhiều yếu tố: cách sống, cách nhìn nhận cuộc đời, cách đối nhân xử thế, phúc đức của người đó ở thời điểm hiện tại cũng sẽ giúp thay đổi vận mệnh của người đó.
Ở Việt Nam, mình thấy tồn tại một vài loại hình như sau:
Xem Tử Vi:
độ chính xác khoảng 60~70%)Xem Bát Tự (tứ trụ tử bình):
(bộ môn huyền học này độ chính còn cao hơn tử vi nữa, ngày trước và bây giờ mình cũng đang ngâm cứu cái này, để có thời gian mình sẽ viết một bài khác)Các thầy bà đồng bóng xem bói, mê tín dị đoan
: loại hình này bị bài xích và nghiêm cấm, tuy nhiên một bộ phận dân chúng vẫn coi đây là cái gì đó tâm linh, và bám víu vào nó.
Lá Số Tử Vi là gì
Lá số tử vi là một lá số được thành lập từ các thông tin: năm, tháng, ngày, giờ sinh của đương số, giới tính, từ đó cấu thành nên một hệ thống sơ đồ vị trí các sao, cũng như một số thông tin thêm khác nhau.
Nhờ vào đó có thể cung cấp được nhiều thông tin về vận mệnh trong tương lai của chủ nhân lá số. Những chuyển biến của các phương diện trong cuộc sống như tài lộc, tình duyên, công danh sự nghiệp, các mối quan hệ liên kết xã hội,… đều sẽ được tiết lộ qua lá số tử vi.
Dưới đây là hình ảnh một lá số mẫu:
Cấu trúc một lá số tử vi
Nhìn như trên hình các bạn có thể thấy, lá số tử vi được chia thành hai phần chính: Thiên Bàn ở chính giữa, và 12 ô Địa Bàn nằm xung quanh thiên bàn.
Thiên Bàn
Khu vực thiên bàn này nằm ở khu vực chính giữa của lá số tử vi, nó cung cấp các thông tin sau:
Dương lịch:
ngày tháng năm sinh dương lịchÂm lịch:
ngày tháng năm sinh âm lịchGiờ
sinh dương lịch, giờ sinh âm lịchNăm hạn
: chính là năm muốn xem vận hạn (có thể có hoặc không, nếu muốn xem chi tiết năm nào thì cần thêm thông tin này)Phạm giờ
: tức là một người sẽ có khả năng rơi vào một vài giờ phạm như là: ví dụ như giờ quan sát hoặc kim xà thiết tỏa,…, nếu có thông tin này thì sẽ được hiển thị ở phần phạm giờÂm dương
: Âm Nam, Dương Nữ, Âm Nữ, Dương NamMệnh
: dựa vào thiên can, địa chi để xác định ra mệnh, ở đây ví dụ mệnh 1989 là Đại Lâm Mộc.Cục
: bao gồm 5 cục sau Kim Tứ Cục, Mộc Tam Cục, Thủy Nhị Cục, Hỏa Lục Cục, Thổ Ngũ CụcCung phi
: việc xác định cung phi hơi dài dòng, logic mình sẽ nói chi tiết sau, nó được cấu thành bởi các thông tin: giới tính, năm sinh âm lịch.Mệnh chủ
: địa chi năm sinh như nào thì mệnh chủ đó, mệnh chủ đi kèm địa chi năm sinhThân chủ
: địa chi năm sinh như nào thì thân chủ đó, thân chủ cũng đi kèm địa chi năm sinhCung âm dương
: sẽ có là âm dương thuận lý hoặc âm dương nghịch lýMệnh cục
: sẽ có các trường hợp như là: Bản mệnh sinh cục, bản mệnh khắc cục, cục khắc bản mệnh, cục sinh bản mệnh, cục hòa bản mệnhThân cư
: là vị trí của cung Thân, đây không phải là một cung cố định như 12 cung, mà là một cung ứng thêm vào một trong 12 cung trên vòng địa bàn. Ví dụ như trên hình thì cung Thân ứng vào vị trí cung THÊ THIẾP, nên ở cung THÊ THIẾP ở vòng địa bàn có một ngoặc nhỏ ghi cung THÂN màu đỏ bên cạnh
Địa Bàn
Khu vực địa bàn gồm 12 ô, ta sẽ gọi là 12 cung trên vòng địa bàn, được xác định bắt đầu từ: Tí, Sửu, Dần,…Hợi, tương ứng với các số thứ tự từ 1->12.
Vị trí của cung Tí luôn luôn nằm ở vị trí ô thứ 2 hàng dưới cùng tính từ phải sang trái, như trên ảnh lá số mẫu thì nó nằm ở cái cung Phụ Mẫu nhé các bạn, tuy nhiên các bạn nên nhớ là: việc cung phụ mẫu nằm ở cung tí như ảnh trên sẽ không liên quan gì đến việc cung phụ mẫu ở đâu thì cung tí ở đó nhé, không là sẽ bị nhầm lẫn.
Từ Cung Tí, xoay thuận chiều kim đồng hồ, sẽ ra được các cung: Sửu, Dần….Hợi, các bạn có thể xem hình dưới để dễ xác định hơn:
Về cấu trúc của một cung Địa Bàn thì hoàn toàn là giống nhau, các bạn có thể xem ảnh sau để biết được một cung Địa Bàn sẽ bao gồm những thông tin gì:
Nó sẽ cung cấp cho chúng ta những thông tin sau:
Tên vị trí của Cung
: như ảnh trên là cung Bính TíCung Chức
: phần phía trên và chính giữa địa bàn là tên cung chức, ví dụ ở đây là Phụ Mẫu, và mỗi cung tương ứng một tên khác nhau: cung Mệnh, Phụ Mẫu, Phúc Đức, Điền Trạch, Quan Lộc, Nô Bộc, Thiên Di, Tật Ách, Tài Bạch, Tử Tức, Thê Thiếp, Huynh ĐệTên Chính Tinh
: ngay phía dưới của tên cung sẽ là tên các chính tinh và đặc tính của nó: sẽ có 14 chính tinh được an vào các cung, còn đặc tính thì sẽ dựa vào sao và số thứ tự của cung để tìm ra đặc tính: M (Miếu), V (Vượng), ĐĐ(Đắc Địa), BH (Bình Hòa), H (Hãm)Tên Phụ Tinh
: ngay phía dưới chính tinh, sẽ là các sao phụ tinh, sẽ chia thành sao tốt và sao xấu: sao tốt bên trái, sao xấu bên phải. Các sao phụ tinh thì tùy sao sẽ có đặc tính hoặc khôngTên Tiểu Hạn
: nằm ở vị trí dưới cùng bên trái, tiểu hạn là 1 nămTên Vòng Tràng Sinh
: nằm ở chính giữa dưới cùng của cung địa bàn, bao gồm 12 sao trong vòng tràng sinh: Tràng Sinh, Mộc Dục, Quan Đới, Lâm Quan, Đế Vượng, Suy, Bệnh, Tử, Mộ, Tuyệt, Thai, DưỡngTên Nguyệt Hạn
: nằm ở góc phải dưới cùng của cung địa bàn, chính là số của tháng hạn trong nămTên Đại Hạn
: số nằm ở góc phải trên cùng của cung địa bàn, đại hạn 10 nămVị trí Tuần, Triệt
: đây không phải là vị trí của sao, mà nó là vị trí kẹp giữa hai cung liên tiếp nhau.
Các bạn để ý rằng là mỗi sao có màu sắc như là: xanh, đỏ, vàng, đen, xám chính là đại diện cho ngũ hành nạp âm của sao đó: ví dụ như Thiên Khôi ở hình trên có màu đỏ tức là mang ngũ hành Hỏa.
- Màu đen: Hành Thủy
- Màu xám: Hành Kim
- Màu đỏ: Hành Hoả
- Màu xanh lá: Hành Mộc
- Màu vàng: Hành Thổ
Demo logic cách lập lá số tử vi
Ngoại trừ phần Thiên Bàn, thì việc xác định phần Địa Bàn về bản chất là tìm ra vị trí của Sao an tại vị trí nào trên vòng tròn 12 cung (đánh số từ 1->12), ở đây mình sẽ demo một vài logic an sao, vì nó khá nhiều, các phần cũng khá tương tự nhau nên làm lại sẽ không có ý nghĩa mấy
Xác định vị trí cung Mệnh
Muốn xác định được cung Mệnh ta cần dựa vào tháng và giờ sinh âm lịch
. Tháng 1 trong năm bắt đầu từ cung Dần, từ đó xác định theo chiều thuận kim đồng hồ sẽ xác định được tháng sinh. Coi cung tháng sinh vừa xác định là giờ Tý, sau đó đếm ngược chiều kim đồng đến giờ sinh của bạn. Giờ sinh dừng ở đâu thì cung đó là cung Mệnh.
Lấy ví dụ cái lá số tử vi mẫu trên kia: tháng sinh âm lịch là 3, giờ sinh âm lịch là Kỷ Tỵ (số thứ tự là 6)
Rồi bây giờ xác định như sau: từ cung Dần, đi thuận theo chiều kim đồng hồ tới tháng 3, ta được cung Thìn, lúc này coi cung Thìn là giờ Tý, đếm ngược chiều kim đồng hồ tới giờ Tỵ (là giờ sinh), vậy cung Mệnh ứng tại vị trí cung Hợi trên vòng địa bàn.
Triển khai vào code như sau:
public static int dichCung(int cungBanDau, int... args) {
int cungSauKhiDich = cungBanDau;
for (int soCungDich : args) {
cungSauKhiDich += soCungDich;
}
if (cungSauKhiDich % 12 == 0) {
return 12;
}
return cungSauKhiDich % 12;
}
Hàm dịch cung này sẽ là tiền đề cho việc dịch cung cũng như xác định sao trong toàn bộ bài viết này, logic ở đây chỉ là dịch theo chiều thuận hoặc dịch theo chiều nghịch bao nhiêu vị trí.
public static int validNumberCung(int viTriCung) {
if (viTriCung < 0) {
return 12 + viTriCung;
}
return viTriCung;
}
Về bản chất việc dịch cung sẽ xảy ra case kết quả dịch cung âm hoặc dương (do dịch ngược), hàm này sẽ đảm bảo kết quả sau khi việc dịch cung hoàn tất thì kết quả vị trí cung được xác định luôn luôn là số dương.
public static int timViTriCungMenh(int thangSinhAmLich, int gioSinhAmLich) {
int viTri = dichCung(3, thangSinhAmLich - 1, -(gioSinhAmLich) + 1);
return validNumberCung(viTri);
}
Hàm này là logic chính tìm vị trí cung mệnh, bắt đầu từ cung Dần thì vị trí ban đầu sẽ là 3, sau đó dịch cung theo chiều thuận tới tháng sinh, sau đó từ vị trí mới dịch cung theo giờ để tìm được vị trí cung Mệnh.
public static Map<Integer, String> buildMap12Cung() {
Map<Integer, String> map = new HashMap<>();
map.put(1, "Tý");
map.put(2, "Sửu");
map.put(3, "Dần");
map.put(4, "Mão");
map.put(5, "Thìn");
map.put(6, "Tị");
map.put(7, "Ngọ");
map.put(8, "Mùi");
map.put(9, "Thân");
map.put(10, "Dậu");
map.put(11, "Tuất");
map.put(12, "Hợi");
return map;
}
Hàm này mục đích để in ra vị trí tên cung nhìn cho dễ :D
@Test
public void shouldReturnPositionCungMenh() {
var expectedResult = 12;
var thangSinhAmLich = 3;
var gioSinhAmLich = 6; // Kỷ Tỵ
int viTriCungMenh = Utils.timViTriCungMenh(thangSinhAmLich, gioSinhAmLich);
System.out.println("[Địa Bàn] Vị trí cung Mệnh: " + viTriCungMenh + " -- cung " + map12Cung.get(viTriCungMenh));
Assert.assertEquals(expectedResult, viTriCungMenh);
}
Viết một hàm UnitTest để check kết quả logic
Sau khi có được vị trí cung Mệnh, thuận chiều kim đồng hồ ta dịch dần từng cung một để được các cung sau: Phụ Mẫu, Phúc Đức, Điền Trạch, Quan Lộc, Nô Bộc, Thiên Di, Tật Ách, Tài Bạch, Tử Tức, Phu Thê, Huynh Đệ.
Xác định cung Thân
Về bản chất cung Thân không phải là tên một cung cố định, mà nó sẽ ứng tại vị trí của một cung trong dãy cũng: Mệnh, Phụ Mẫu, Phúc Đức, Điền Trạch, Quan Lộc, Nô Bộc, Thiên Di, Tật Ách, Tài Bạch, Tử Tức, Phu Thê, Huynh Đệ.
Xác định vị trí như sau: từ cung Dần (vị trí số 3) Coi tháng 1 là cung Dần, theo chiều thuận kim đồng hồ đếm tới tháng sinh ta được một ví trí A. Vị trí A vừa xác định được coi là giờ Tý, sau đó đếm thuận chiều kim đồng hồ đến giờ sinh của bạn. Giờ sinh dừng ở đâu thì đó là cung Thân.
Cách làm thì tương tự cung Mệnh thôi nhưng chiều dịch cung là khác nhau.
public static int timViTriCungThan(int thangSinhAmLich, int gioSinhAmLich) {
return validNumberCung(dichCung(3, thangSinhAmLich - 1, gioSinhAmLich - 1));
}
Hàm này triển khai logic xác định vị trí cung Thân trên vòng tròn 12 cung.
public List<CungChucDTO> buildListDataCungChuc(int viTriCungMenh) {
var menh = buildCungChucDTO(viTriCungMenh, EnumCungChuc.MENH);
var phuMau = buildCungChucDTO(Utils.dichCung(viTriCungMenh, 1), EnumCungChuc.PHU_MAU);
var phucDuc = buildCungChucDTO(Utils.dichCung(viTriCungMenh, 2), EnumCungChuc.PHUC_DUC);
var dienTrach = buildCungChucDTO(Utils.dichCung(viTriCungMenh, 3), EnumCungChuc.DIEN_TRACH);
var quanLoc = buildCungChucDTO(Utils.dichCung(viTriCungMenh, 4), EnumCungChuc.QUAN_LOC);
var noBoc = buildCungChucDTO(Utils.dichCung(viTriCungMenh, 5), EnumCungChuc.NO_BOC);
var thienDi = buildCungChucDTO(Utils.dichCung(viTriCungMenh, 6), EnumCungChuc.THIEN_DI);
var tatAch = buildCungChucDTO(Utils.dichCung(viTriCungMenh, 7), EnumCungChuc.TAT_ACH);
var taiBach = buildCungChucDTO(Utils.dichCung(viTriCungMenh, 8), EnumCungChuc.TAI_BACH);
var tuTuc = buildCungChucDTO(Utils.dichCung(viTriCungMenh, 9), EnumCungChuc.TU_TUC);
var theThiep = buildCungChucDTO(Utils.dichCung(viTriCungMenh, 10), EnumCungChuc.THE_THIEP);
var huynhDe = buildCungChucDTO(Utils.dichCung(viTriCungMenh, 11), EnumCungChuc.HUYNH_DE);
return Arrays.asList(menh, phuMau, phucDuc, dienTrach, quanLoc, noBoc, thienDi, tatAch, taiBach, tuTuc, theThiep, huynhDe);
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public final class CungChucDTO {
private int viTriCung;
private String tenCung;
}
Hàm trên sẽ tìm ra danh sách vị trí cung Chức từ vị trí của cung Mệnh, dùng để xác định tên cung Thân sau khi tìm được vị trí cung Thân trên vòng tròn 12 cung.
Giờ ta sẽ viết hàm UnitTest để tìm vị trí cung Thân và verify kết quả dựa vào lá số tử vi từ đầu bài viết:
@Test
public void shouldReturnCungThan() {
var expectedPositionResult = 10; // vị trí cung Thân cần kiểm tra
var expectedNameResult = "Thê Thiếp";
var thangSinhAmLich = 3;
var gioSinhAmLich = 6; // Kỷ Tỵ
var viTriCungThan = Utils.timViTriCungThan(thangSinhAmLich, gioSinhAmLich); // xác định vị trí của cung Thân trên vòng 12 cung
var cungChucs = buildListDataCungChuc(Utils.timViTriCungMenh(thangSinhAmLich, gioSinhAmLich)); // list cung chức tìm được từ vị trí cung mệnh
var tenCungThan = Objects.requireNonNull(cungChucs.stream().filter(cung -> viTriCungThan == cung.getViTriCung()).findFirst().orElse(null)).getTenCung();
System.out.println("[Địa Bàn] Vị trí cung Thân: " + viTriCungThan + " ---- " + tenCungThan);
Assert.assertEquals(expectedPositionResult, viTriCungThan);
Assert.assertEquals(expectedNameResult, tenCungThan);
}
Xác định Cục
Việc xác định Cục sẽ dựa vào thiên can năm sinh và vị trí của cung Mệnh, cách xác định như sau:
- Các con số tương ứng từ thiên can năm sinh: Giáp – Kỷ = 1, Ất – Canh = 2, Bính – Tân = 3, Đinh – Nhâm = 4, Mậu – Quý = 5
- Các con số tương ứng với vị trí của cung mệnh: Mệnh tại Tý – Sửu = 1, tại Dần – Mão – Tuất – Hợi = 2, tại Ngọ – Mùi = 3, tại Tị – Thìn = 4, tại Thân – Dậu = 5
- Cộng hai con số này lại, nếu lớn hơn 5 thì trừ đi 5 để ra được kết quả cuối cùng nhỏ hơn hoặc bằng 5
- Từ kết quả cộng ở bước trên, xác định cục như sau: 1 – Kim tứ cục, 2 – Thủy nhị cục, 3 – Hỏa lục cục, 4 – Thổ ngũ cục, 5 – Mộc tam cục.
Logic thì mình thấy nó dễ quá, các bạn có thể tự xây dựng logic tính của riêng mình
@Test
public void shouldReturnCuc() {
var expectedResult = "Hỏa Lục Cục";
var viTriCungMenh = 12;
var thienCanNamSinh = "Ky";
var cuc = Utils.timCuc(viTriCungMenh, thienCanNamSinh);
System.out.println("[Thiên Bàn] Tên Cục: " + cuc);
Assert.assertEquals(expectedResult, cuc);
}
Xác định vị trí sao Tử Vi
Đoạn này các bạn để ý nhé, nó sẽ như thế này, theo như một số tài liệu trên google thì cách tìm sao Tử Vi được xác định như sau: từ cục đã tìm được ở trên và ngày sinh âm lịch mà bạn có thể xác định được vị trí của sao Tử Vi bằng cách tra các bảng bên dưới:
Được rồi, đối chiếu bằng mắt thì không để làm gì cả, giờ chúng ta sẽ biểu diễn vào code thì nó như sau:
- Thủy Nhị Cục: quy ước cục số là 2
- Mộc Tam Cục: quy ước cục số là 3
- Kim Tứ Cục: quy ước cục số là 4
- Thổ Ngũ Cục: quy ước cục số là 5
- Hỏa Lục Cục: quy ước cục số là 6
Đến đây các bạn có tự hỏi là tại sao lại có quy ước như thế không? nếu các bạn tự hỏi như này thì good chóp, xem lại 5 hình ở trên rồi suy ra nhé.
public static int timSaoTuVi(int cuc, int ngaySinhAmLich) {
var cungDan = 3; // Vị trí cung Dần ban đầu là 3
var cucBanDau = cuc;
if (!(cuc == 2 || cuc == 3 || cuc == 4 || cuc == 5 || cuc == 6)) {
throw new RuntimeException("Số cục phải là 2, 3, 4, 5, 6");
}
while (cuc < ngaySinhAmLich) {
cuc += cucBanDau;
cungDan++;
}
var saiLech = cuc - ngaySinhAmLich;
if (saiLech % 2 == 1) {
saiLech = -saiLech;
}
return validNumberCung(dichCung(cungDan, saiLech));
}
Hàm trên xác định vị trí của sao tử vi dựa vào cục số và ngày sinh âm lịch, giờ ta viết một hàm UnitTest để verify
@Test
public void shouldReturnPositionSaoTuVi() {
var expectedPositionResult = 5;
var ngaySinhAmLich = 4;
var cucSo = 6; // Hỏa Lục Cục
var viTriSaoTuVi = Utils.timSaoTuVi(cucSo, ngaySinhAmLich);
System.out.println("[Địa Bàn] Vị trí sao Tử Vi: " + viTriSaoTuVi + " ---- nằm tại cung " + buildMap12Cung().get(viTriSaoTuVi));
Assert.assertEquals(expectedPositionResult, viTriSaoTuVi);
}
Xác định vị trí các sao Chính Tinh
Sau khi đã xác định được vị trí của Sao Tử Vi ở bước trên, thì các sao chính tinh còn lại sẽ được xác định bằng việc dịch cung:
Sao Liêm Trinh
: từ vị trí Tử Vi, dịch thuận 4 cung (tức thuận chiều kim đồng hồ)Sao Thiên Đồng
: từ vị trí Tử Vi, dịch thuận 7 cungSao Vũ Khúc
: từ vị trí Tử Vi, dịch thuận 8 cungSao Thái Dương
: từ vị trí Tử Vi, dịch thuận 9 cungSao Thiên Cơ
: từ vị trí Tử Vi, dịch thuận 11 cungSao Thiên Phủ
: từ vị trí cung Dần, dịch đi một giá trị là 3-vị trí tử vi (giá trị này có thể âm hoặc dương, tùy giá trị mà dịch thuận hoặc nghịch kim đồng hồ)Sao Thái Âm
: từ vị trí Thiên Phủ, dịch thuận 1 cungSao Tham Lang
: từ vị trí Thiên Phủ, dịch thuận 2 cungSao Cự Môn
: từ vị trí Thiên Phủ, dịch thuận 3 cungSao Thiên Lương
: từ vị trí Thiên Phủ, dịch thuận 5 cungSao Thiên Tướng
: từ vị trí Thiên Phủ, dịch thuận 4 cungSao Thất Sát
: từ vị trí Thiên Phủ, dịch thuận 6 cungSao Phá Quân
: từ vị trí Thiên Phủ, dịch thuận 10 cung
Xác định vị trí các sao Phụ Tinh
Phần này mình sẽ chỉ liệt kê các sao thuộc phụ tinh, chứ không nêu logic an sao nữa, vì nó quá nhiều và khá là dài dòng, về bản chất tất cả những sao dưới đây đều được coi là phụ tinh:
Đặc điểm | Sao |
---|---|
Các sao phụ tinh có vị trí cố định | Thiên La, Địa Võng, Thiên Thương, Thiên Sứ |
Các sao phụ tinh thuộc vòng lộc tồn | Lộc Tồn, Kình Dương, Đà La, Lưu Niên Văn Tinh, Quốc Ấn, Đường Phù, Bác Sĩ, Lực Sĩ, Thanh Long, Tiểu Hao, Tướng Quân, Tấu Thư, Phi Liêm, Hỷ Thần, Bệnh Phù, Đại Hao, Phục Binh, Quan Phù |
Các sao phụ tinh thuộc vòng thái tuế | Thái Tuế, Thiếu Dương, Tang Môn, Thiếu Âm, Quan Phù, Tử Phù, Tuế Phá, Long Đức, Bạch Hổ, Phúc Đức, Điếu Khách, Trực Phù |
Các sao phụ tinh thuộc vòng tràng sinh | Tràng Sinh, Mộc Dục, Quan Đới, Lâm Quan, Đế Vượng, Suy, Bệnh, Tử, Mộ, Tuyệt, Thai, Dưỡng |
Các sao phụ tinh thuộc tứ trợ tinh | Hóa Khoa, Hóa Quyền, Hóa Lộc, Hóa Kỵ |
Các sao phụ tinh an theo tháng | Tả Phù, Hữu Bật, Tam Thai, Bát Tọa, Thiên Hình, Thiên Diêu, Thiên Y, Đẩu Quân |
Các sao phụ tinh an theo giờ | Văn Xương, Văn Khúc, Ân Quang, Thiên Quý, Thai Phụ, Phong Cáo, Thiên Giải, Địa Giải, Thiên Không, Địa Kiếp |
Các sao phụ tinh thuộc nhóm chưa xác định | Địa Không, Lưu Hà, Thiên Trù, Thiên Khôi, Thiên Việt, Long Trì, Phượng Các, Giải Thần, Thiên Đức, Nguyệt Đức, Hồng Loan, Thiên Hỷ, Thiên Quan, Thiên Phúc, Thiên Mã, Hoa Cái, Đào Hoa, Phá Toái, Kiếp Sát, Cô Thần, Quả Tú, Hỏa Tinh, Linh Tinh, Thiên Tài, Thiên Thọ, Thiên Khốc, Thiên Hư |
Các sao phụ tinh thuộc nhóm lưu niên | Lưu Thái Tuế, Lưu Tang Môn, Lưu Bạch Hổ, Lưu Thiên Khốc, Lưu Thiên Hư, Lưu Lộc Tồn, Lưu Kình Dương, Lưu Ðà La, Lưu Thiên Mã |
Các sao phụ tinh thuộc nhóm tứ hóa | Lưu Hóa Lộc, Lưu Hóa Khoa, Lưu Hóa Quyền, Lưu Hóa Kỵ |
Các sao phụ tinh thuộc nhóm tứ đức | Lưu Phúc Đức, Lưu Thiên Đức, Lưu Nguyệt Đức, Lưu Long Đức |
Các sao phụ tinh thuộc nhóm đại vận (khi cần xác định theo đại vận thì sẽ xuất hiện thêm các sao) | ĐV. Văn Khúc, ĐV. Văn Xương, ĐV. Đà La, ĐV. Kình Dương, ĐV. Thiên Mã, ĐV. Lộc Tồn, ĐV. Thiên Khôi, ĐV. Thiên Việt, ĐV. Hóa Khoa, ĐV. Hóa Quyền, ĐV. Hóa Lộc, ĐV. Hóa Kỵ |
Các sao phụ tinh thuộc nhóm đại vận (và vị trí của nó sẽ nằm ở góc dưới cùng bên trái của ô Địa Bàn) | ĐV. MỆNH, ĐV. PHỤ, ĐV. PHÚC, ĐV. ĐIỀN, ĐV. QUAN, ĐV. NÔ, ĐV. DI, ĐV. TẬT, ĐV. TÀI, ĐV. TỬ, ĐV. THÊ, ĐV. BÀO |
Các sao phụ tinh thuộc nhóm đại vận (nằm ở góc dưới cùng bên phải của ô Địa Bàn) | L. MỆNH, L. PHỤ, L. PHÚC, L. ĐIỀN, L. QUAN, L. NÔ, L. DI, L. TẬT, L. TÀI, L. TỬ, L. THÊ, L. BÀO |
Các sao lưu khác | L. Kiếp Sát, L. Văn Khúc, L. Đào Hoa, L. Hồng Loan, L. Văn Xương, L. Thiên Khôi, L. Thiên Việt, L. Hỷ Thần |
Xác định Đại Hạn
Đại hạn là thời gian 10 năm (thập niên), được tính dựa theo Cục và tuổi âm. Mỗi thập niên được ghi vào một cung, bắt đầu từ cung mệnh trở đi.
Dương Nam hoặc Âm Nữ thì ghi theo chiều THUẬN, Âm Nam hoặc Dương Nữ thì ghi theo chiều NGHỊCH với quy ước như sau:
- Thủy nhị cục bắt đầu bằng 2, rồi 12, 22, 32…102
- Mộc tam cục bắt đầu bằng số 3, rồi 13, 23, 33… 103
- Kim tứ cục bắt đầu bằng số 4, rồi 14, 24, 34… 104
- Thổ ngũ cục bắt đầu bằng số 5, rồi 15, 25, 35…105
- Hỏa lục cục bắt đầu bằng số 6, rồi 16, 26, 36…106
Xác định Tiểu Hạn
Tiểu hạn là thời gian 1 năm, được ghi theo vòng chu vi địa bàn, mỗi cung ghi một tên tiểu hạn. Nếu là Nam thì ghi theo chiều THUẬN, nếu là Nữ thì ghi theo chiều NGHỊCH.
CHI CỦA TUỔI | CUNG GHI TIỂU HẠN |
Thân, Tý, Thìn | Tuất |
Hợi, Mão, Mùi | Sửu |
Dần, Ngọ, Tuất | Thìn |
Tý, Dậu, Sửu | Mùi |
Ví dụ: đương số tuổi Thân, ta xác định tiểu hạn như sau:
- Nếu là Nam thì thì ghi chữ THÂN vào cung Tuất, rồi theo chiều thuận ghi DẬU vào cung Hợi … ghi TÝ vào cung Dần… tiếp tục ghi cho đến ghi MÙI vào cung Dậu.
- Nếu là Nữ thì ghi chữ THÂN vào cung Tuất, rồi theo chiều nghịch ghi DẬU vào cung Dậu… ghi TÝ vào cung Ngọ… tiếp tục ghi cho đến ghi MÙI vào cung Hợi.
Xác định Nguyệt Hạn
Nguyệt hạn là thời gian 1 tháng, cung khởi để tính nguyệt hạn được xác định như sau:
- Tí, Mão, Ngọ, Dậu khởi từ
Sửu
- Dần, Tỵ, Thân, Hợi khởi từ
Tỵ
- Sửu, Thìn, Mùi, Tuất khởi từ
Dậu
bắt đầu từ cung tiểu hạn gọi là tháng giêng, tính theo chiều NGHỊCH đến tháng sinh, rồi từ đó tính là giờ Tý, tính THUẬN đến giờ sinh, tới cung nào thì cung đó là tháng GIÊNG của nguyệt hạn.
@Test
public void shouldReturnNguyetHan() {
var expectedPositionResult = 9; // tháng giêng nguyệt hạn tại cung Thân -> lá số example
var thangSinhAmLich = 3;
var gioSinhAmLich = 6; // Kỷ Tỵ
var cungKhoiNguyetHan = 6; // cung khởi nguyệt hạn
var viTriGioTy = Utils.validNumberCung(Utils.dichCung(cungKhoiNguyetHan, -thangSinhAmLich));
var viTriThangGieng = Utils.validNumberCung(Utils.dichCung(viTriGioTy, gioSinhAmLich));
System.out.println("[Địa Bàn] Vị trí tháng Giêng: " + viTriThangGieng + " ---- nằm tại cung " + buildMap12Cung().get(viTriThangGieng));
Assert.assertEquals(expectedPositionResult, viTriThangGieng);
}
Xem thêm một số bài viết nổi bật
- Phỏng vấn dạo kĩ sư phần mềm 2023
- Làm việc trong môi trường Agile là như thế nào
- Là kĩ sư phần mềm hãy cố gắng giữ gìn sức khỏe bản thân
- Kĩ năng quản lý căng thẳng cho Developer
- Bạn không giỏi lắng nghe như bạn nghĩ đâu
- Crack Intellij IDEA Ultimate version 2022
- Biết sử dụng git cherry-pick để làm việc hiệu quả hơn
- Git stash giúp bạn trở nên chuyên nghiệp như thế nào?
- Shortcut Intellij hữu ích để làm việc được hiệu quả hơn
- How to build Rate Limit with Hazelcast and Spring Boot
- Hazelcast Distributed Cache with Spring Boot
- How to build Cron Job for multiple instances with ShedLock
- Distributed Lock with Hazelcast and Spring
- How to using Cassandra with Spring boot
- Ba luồng thực hiện tuần tự, có những cách triển khai nào?