Tính can chi và thứ trong tuần khi biết ngày, tháng , năm
Hôm nay mình xin hướng dẫn các bạn cách tính can chi và tìm thứ trong tuần. Vd: 28/03/1988 => Bạn sinh vào ngày thứ hai năm Mậu thìn Can có 10 can: GIÁP; ẤT; BÍNH ; ĐINH; MẬU ; KỈ ; CANH ; TÂN ; NHÂM; QUÝ. Chi có 12 chi: TÝ ; SỬU ...
Hôm nay mình xin hướng dẫn các bạn cách tính can chi và tìm thứ trong tuần.
Vd: 28/03/1988 => Bạn sinh vào ngày thứ hai năm Mậu thìn
Can có 10 can: GIÁP; ẤT; BÍNH ; ĐINH; MẬU ; KỈ ; CANH ; TÂN ; NHÂM; QUÝ.
Chi có 12 chi: TÝ ; SỬU ; DẦN ; MÃO; THÌN ; TỴ ; NGỌ ;MÙI ; THÂN ; DẬU ; TUẤT; HỢI.
Bảng tính can chi:
+ Bảng can:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Canh | Tân | Nhâm | Quý | Giáp | Ất | Bính | Đinh | Mậu | Kỷ |
+ Bảng chi:
Tý | Sửu | Dần | Mão | Thìn | Tỵ | Ngọ | Mùi | Thân | Dậu | Tuất | Hợi | |
3 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | 0 |
4 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 |
Bảng Can:
Với 10 chữ số tương ứng với 10 CAN theo bảng( tính theo chữ số cuối cùng của năm sinh); VD. Bạn sinh năm 1986, số 6 tương ứng với CAN Bính
Bảng Chi:
Bảng này sử dụng dấu hiệu chia hết cho 3 va cho 4
(Nhắc lại )
+ Tổng các chữ số của 1 số chia cho 3 có cùng số dư với số đó chia cho 3; VD số 1986 có 1+9+8+6 =24. số 24 chia cho 3 dư 0, nên số 1986 chia cho 3 cũng dư 0.
+Một số được tạo thành từ 2 chữ số cuối cùng của 1 số chia cho 4 có cùng số dư với số đó chia cho 4 ;VD Số 1986 có 86 chia cho 4 dư 2 nên số 1986 cũng chia cho 4 dư 2.
Giờ ta nhìn vào bảng 2. Số 1986 chia cho 3 dư 0 và chia cho 4 dư 2 nên năm 1986 có Chi la Dần.
+ Hàm tính thứ khi biết ngày, tháng, năm
thu = CDate(MaskedTextBox1.Text).DayOfWeek.ToString()
Dưới đây là code VB:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim ngay As String = vb.Left(MaskedTextBox1.Text, 2) Dim thang As String = vb.Mid(MaskedTextBox1.Text, 3, 2) Dim nam As String = vb.Right(MaskedTextBox1.Text, 4) ' Tính Can Có 10 CAN là : GIÁP; ẤT; BÍNH ; ĐINH; MẬU ; KỈ ; CANH ; TÂN ; NHÂM; QUÝ Dim can As String = vb.Right(nam, 1) Dim chi As String = "" Dim kq As String = "" If can = 0 Then kq = "Canh" ElseIf can = 1 Then kq = "Tân" ElseIf can = 2 Then kq = "Nhâm" ElseIf can = 3 Then kq = "Qúy" ElseIf can = 4 Then kq = "Giáp" ElseIf can = 5 Then kq = "Ất" ElseIf can = 6 Then kq = "Bính" ElseIf can = 7 Then kq = "Đinh" ElseIf can = 8 Then kq = "Mậu" ElseIf can = 9 Then kq = "Kỷ" End If ' Tính Chi có 12 chi: TÝ ; SỬU ; DẦN ; MÃO; THÌN ; TỴ ; NGỌ ;MÙI ; THÂN ; DẬU ; TUẤT; HỢI. Dim a As String = (vb.Right(nam, 1) + vb.Mid(nam, 6, 1) + vb.Mid(nam, 7, 1) + vb.Mid(nam, 8, 1)) Mod 3 Dim b As String = (vb.Right(nam, 2)) Mod 4 Dim c As String = a & b If c = "00" Then chi = "Thân" ElseIf c = "01" Then chi = "Tỵ" ElseIf c = "02" Then chi = "Dần" ElseIf c = "03" Then chi = "Hợi" ElseIf c = "10" Then chi = "Tý" ElseIf c = "11" Then chi = "Dậu" ElseIf c = "12" Then chi = "Ngọ" ElseIf c = "13" Then chi = "Mão" ElseIf c = "20" Then chi = "Thìn" ElseIf c = "21" Then chi = "Sửu" ElseIf c = "22" Then chi = "Tuất" ElseIf c = "23" Then chi = "Mùi" End If ' Tính thứ trong ngày Dim thu As String thu = CDate(MaskedTextBox1.Text).DayOfWeek.ToString() If thu = "Monday" Then thu = "thứ hai" ElseIf thu = "Tuesday" Then thu = "thứ ba" ElseIf thu = "Wednesday" Then thu = "thứ tư" ElseIf thu = "Thursday" Then thu = "thứ năm" ElseIf thu = "Friday" Then thu = "thứ sáu" ElseIf thu = "Saturday" Then thu = "thứ bảy" ElseIf thu = "Sunday" Then thu = "chủ nhật" End If ' Xuất kết quả TextBox1.Text = "Bạn sinh vào ngày " & thu & " năm " & kq & " " & chi End Sub
Cuối cùng bạn nhớ import thư viện này vào:
Imports vb = Microsoft.VisualBasic.Strings
Rất đơn giản phải không các bạn, chúc các bạn thành công.