Cách tính mệnh ngũ hành của bạn bằng Nodejs
Mình là người rất thích xem hài, đặt biệt là hài của Trấn Thành. Một trong các vai hài mình thích nhất của Trấn Thành là vai ông thầy bói và anh Nguyên Phấn Đông (nguyên đống p**n) siêu lày. Trong bộ đó có đoạn hỏi về “mệnh của con là mệnh gì ?” thì ngay lúc đó mình mới tự hỏi mình là mệnh gì ? và làm sao để biết được mình là mệnh nước hay mệnh lửa… hic hic.

Qua một thời gian tìm tòi và nghiên cứu, mình tìm ra công thức tính và đưa nó vào lập trình. Công thức đó được ghi ở một trang web nhưng lúc mình tìm lại thì không tìm ra trang web đó nữa, nếu bạn nào xem thấy có trang web nào có công thức giống vậy chỉ mình nhé để mình lấy share lên fb luôn hihi.
Nếu bạn nào chưa hiều về mệnh ngũ hành cũng như can, chi thì mình giải thích một tí:
- Can gồm có 10 can: Canh, Tân, Nhâm, Quý, Giáp, Ất, Bính, Đinh, Mậu, Kỷ.
- Chi gốm 12 yếu tố được tính bằng 12 con giáp: Tý, Sửu, Dần, Mão, Thìn, Tỵ, Ngọ, Mùi, Thân, Dậu, Tuất, Hợi
- Ngũ hành sẽ gồm có 5: Kim, Mộc, Thủy, Hỏa, Thổ.
Ngũ hành sẽ được tính từ Thiên Can (được tính từ can) và Địa Chi (được tính từ chi), để tính được 2 thông tin đó mình sẽ cần đến năm sinh, bên dưới là một ví dụ
VD: Bác hồ sinh năm 1890 thì biết được -> Chi: Dần -> Can: Canh -> Ngũ hành: Mộc => Bác sinh năm Canh Dần và là mệnh mộc. Nếu biết được mệnh của mình và người khác mình sẽ dễ dàng chọn lựa các đồ dùng hoặc quà cáp phù hợp với mệnh của người đó để góp phần giúp người đó may mắn hơn, người lại không biết thì bạn biết rồi đó.
Okey công thức sẽ được tính như sau:
Can = ký tự cuối cùng năm sinh của bạn, so sánh với bảng ở bên dưới
VD: 1998 -> 8 -> Can: Mậu
Mã Can | Tên Can |
0 | Canh |
1 | Tân |
2 | Nhâm |
3 | Quý |
4 | Giáp |
5 | Ất |
6 | Bính |
7 | Đinh |
8 | Mậu |
9 | Kỷ |
Chi = Chia lấy dư năm sinh của bạn cho 12, lấy số dư đó so sánh với bảng ở dưới
VD: 1998 -> 1998 % 12 = 6 -> Chi: Dần
Mã Chi | Tên Chi |
0 | Thân |
1 | Dậu |
2 | Tuất |
3 | Hợi |
4 | Tí |
5 | Sửu |
6 | Dần |
7 | Mẹo |
8 | Thìn |
9 | Tỵ |
10 | Ngọ |
11 | Mùi |
Thiên Can = so sách Mã Can vừa tính được so sách với bảng bên dưới
VD: 1998 mã Can của mình là 8 => Thiên Can = 3
Mã Can | Thiên Can |
4, 5 | 1 |
6, 7 | 2 |
8, 9 | 3 |
0, 1 | 4 |
2, 3 | 5 |
Địa Chi = so sách Mã Chi vừa tính được so sách với bảng bên dưới
VD: 1998 mã Chi của mình là 6 => Địa Chi = 1
Mã Chi | Địa Chi |
4, 5, 10, 11 | 0 |
0, 1, 6, 7 | 1 |
2, 3, 8, 9 | 2 |
Mệnh Ngũ Hành = Thiên Can + Địa Chi, nếu tổng lớn hơn 5 thì lấy 5 – tổng vừa tính và lấy giá trị so sánh với bảng bên dưới
VD: 3 + 1 = 4 => mệnh Thổ
4+2 = 6 => mệnh Kinh ( 6 – 5 = 1)
Mã Ngũ Hành | Ngũ Hành |
1 | Kim |
2 | Thủy |
3 | Hỏa |
4 | Thổ |
5 | Mộc |
Từ công thức trên thì rất đơn giản để mình đưa nó vào lập trình tính toán ra những thứ mình cần tính. Bên dưới là đoạn code mình áp dụng để tính năm sinh ra năm đó là năm gì và mệnh ngũ hành là gì?
let YEAR = 1998; function getCan(number){ switch(number){ case 0:{ return "Canh" } case 1:{ return "Tân" } case 2:{ return "Nhâm" } case 3:{ return "Quý" } case 4:{ return "Giáp" } case 5:{ return "Ất" } case 6:{ return "Bính" } case 7:{ return "Đinh" } case 8:{ return "Mậu" } case 9:{ return "Kỷ" } default:{ return "Undefine"; } } } function getChi(number){ switch(number){ case 0:{ return "Thân" } case 1:{ return "Dậu" } case 2:{ return "Tuất" } case 3:{ return "Hợi" } case 4:{ return "Tý" } case 5:{ return "Sửu" } case 6:{ return "Dần" } case 7:{ return "Mão" } case 8:{ return "Thìn" } case 9:{ return "Tỵ" } case 10:{ return "Ngọ" } case 11:{ return "Mùi" } default:{ return "Undefine"; } } } function getHanhCan(yearOld){ //1998 -> 8 let strYear = yearOld.toString(); let lastCharNum = strYear.substr(strYear.length-1,1); return parseInt(lastCharNum); } function getHanhChi(yearOld){ //1998 -> 8 return yearOld % 12; } function getYearConvension(yearOld){ return `${getCan(getHanhCan(yearOld))} ${getChi(getHanhChi(yearOld))}` ; } function getThienCan(canNum){ if(canNum == 4 || canNum == 5){ return 1; } if(canNum == 6 || canNum == 7){ return 2; } if(canNum == 8 || canNum == 9){ return 3; } if(canNum == 0 || canNum == 1){ return 4; } if(canNum == 2 || canNum == 3){ return 5; } } function getDiaChi(numChi){ if(numChi == 4 || numChi == 5 || numChi == 10 || numChi == 11){ return 0; } if(numChi == 0 || numChi == 1 || numChi == 6 || numChi == 7){ return 1; } if(numChi == 2 || numChi == 3 || numChi == 8 || numChi == 9){ return 2; } } function getNguHanh(num){ switch(num){ case 1:{ return "Kim" } case 2:{ return "Thủy" } case 3:{ return "Hỏa" } case 4:{ return "Thổ" } case 5:{ return "Mộc" } default:{ return "Undefine"; } } } function getMenhNguHanh(yearOld){ let can = getHanhCan(yearOld); let chi = getHanhChi(yearOld); let thienCan = getThienCan(can); let diaChi = getDiaChi(chi); let nguHanh = (thienCan + diaChi) > 5 ? (thienCan + diaChi) - 5 : (thienCan + diaChi); return getNguHanh(nguHanh) } console.log(`Năm: ${getYearConvension(YEAR)}`); console.log(`Mệnh: ${getMenhNguHanh(YEAR)}`);
Chương trình trên mình chỉ code để console ra thôi, mình muốn dùng reactjs để hiển thị giao diện luôn cho ngầu nhưng chưa có thời gian, anyway page mình có một số bài viết về reactjs rất hay bạn có thể tham khảo tại đây. Chúc các bạn thành công!