thanhvien1802
Thành viên chính thức


- Tham gia
- 31/12/07
- Bài viết
- 64
- Được thích
- 17






Public Function CanChiT(ByVal Thg As Integer, ByVal Yea As Integer) As String
Dim Tmp, CanStr, Nam
CanStr = Array("Giap", "At", "Binh", "Dinh", _
"Mau", "Ky", "Canh", "Tan", "Nham", "Quy")
Nam = CanStr(Yea Mod 10)
Tmp = Switch(Nam = "Giap", "1", Nam = "At", "2", Nam = "Binh", "3", _
Nam = "Dinh", "4", Nam = "Mau", "5", Nam = "Ky", "6", Nam = "Canh", _
"7", Nam = "Tan", "8", Nam = "Nham", "9", Nam = "Quy", "10")
Tmp = (Tmp * 2 + (Thg Mod 10 + 1)) Mod 10
CanChiT = CanStr(Tmp) & " " & Choose(Thg, "Dan", "Mao", _
"Thin", "Ty", "Ngo", "Mui", "Than", "Dau", "Tuat", "Hoi", "Ti", "Suu")
End Function


Coi tý, sửu, dần, mão, thìn, tỵ, ngọ, mùi, thân, dậu, tuất, hợi là 1, 2,3,...,11,0. Coi giáp, ất, bính, đinh, mậu, kỷ, canh, tân, nhâm, quý là 1,2,..,9,0. Can năm là (năm-3) mod 10. Chi năm là (năm-3) mod 12. Can tháng = ((can năm)*2 + tháng) mod 10. Chi tháng =(tháng+2) mod 12. Từ đó bạn lập công thức, tháng năm theo âm lịch nhé.Xin hỏi các Bác :Code viết tìm Can Chi của Tháng âm : Ô màu vàng trong Excel là chưa có
Xin cảm ơn các Bác trước




Thanks Bác.
Bác xem có 1 lỗi khi ngày âm 29-02 hoặc 30/2 thì bị lỗi.
Có lẽ nó hiểu 29 âm, 30 âm tháng 2 không tồn tại như bên Duơng Lịch
Cụ thể ngày :
17/04/2015
18/04/2015
26/03/2017
27/03/2017






Public Function CanChiT2(ByVal NgayAL As String) As String
Dim Tmp, CanStr, Nam, Ng
Ng = Split(NgayAL, "/")
Thg = Ng(1)
Yea = Ng(2)
CanStr = Array("Giap", "At", "Binh", "Dinh", _
"Mau", "Ky", "Canh", "Tan", "Nham", "Quy")
Nam = CanStr(Yea Mod 10)
Tmp = Switch(Nam = "Giap", "1", Nam = "At", "2", Nam = "Binh", "3", _
Nam = "Dinh", "4", Nam = "Mau", "5", Nam = "Ky", "6", Nam = "Canh", _
"7", Nam = "Tan", "8", Nam = "Nham", "9", Nam = "Quy", "10")
Tmp = (Tmp * 2 + (Thg Mod 10 + 1)) Mod 10
CanChiT2 = CanStr(Tmp) & " " & Choose(Thg, "Dan", "Mao", _
"Thin", "Ty", "Ngo", "Mui", "Than", "Dau", "Tuat", "Hoi", "Ti", "Suu")
End Function


Public Function CanChiT3(ByVal NgayAL As String) As String
Dim Ng, Thg, Yea, x, y, k, n
Ng = Split(NgayAL, "/")
Thg = Ng(1)
Yea = Ng(2)
x = Yea Mod 5
y = Array(8, 0, 2, 4, 6)
k = y(x)
n = (k + Thg) Mod 10
CanChiT3 = Choose(n, "Canh", "Tan", "Nham", "Quy", "Giap", "At", "Binh", "Dinh", "Mau", "Ky") & " " & _
Choose(Thg, "Dan", "Mao", "Thin", "Ty", "Ngo", "Mui", "Than", "Dau", "Tuat", "Hoi", "Ti", "Suu")
End Function

