- ' Coded by truongphu
- Dim NgàyAL As Integer, TênNgàyAL As String, ThángAL As Integer, TênThángAL As String, Nam As Integer, TênNaM As String, Nh As String
- Private Function ToAL(data As Date)
- Dim Can() As String, Chi() As String, TêTDL As Date
- Can = Split("Canh,Tân,Nhâm,Qúy,Giáp,Ât,Bính,Ðinh,Mâu,Ky", ",")
- Chi = Split("Thân,Dâu,Tuâ't,Ho'i,Tý,Su'u,Dâ`n,Mão,Thìn,Ty,Ngo,Mùi", ",")
- ''' Phâ`n cung câ'p du liêu: (2016 Ðã cung câp)
- Dim DuLieu() As String, i As Byte, DaysAL As Byte
- TêTDL = #1/1/2016# ' <-- Cung câ'p sô' liêu
- DuLieu = Split("13,1,0,1,0,1,0,0,1,0,1,1,0,1", ",") ' <-- Cung câ'p sô' liêu
- ' Nam AL không nhuân ghi sô' 13, nhuân ghi tháng nhuân. 1 là tháng Ðu, 0 là tháng thiêu.
- NgàyAL = DateDiff("d", TêTDL, data) + 22 ' Cong thêm ngày AL vào ngày 1/1/2016 ' <-- Cung câ'p sô' liêu
- ThángAL = 11 ' Ghi tháng AL vào ngày 1/1/2016 ' <-- Cung câ'p sô' liêu
- ''' Bat Ðâu tính toán:
- For i = 1 To 13
- DaysAL = 29 + CByte(DuLieu(i))
- If NgàyAL > DaysAL Then
- NgàyAL = NgàyAL - DaysAL
- If i = DuLieu(0) + 1 Then ' Chi dùng cho tháng nhuân
- ThángAL = ThángAL ' Chi dùng cho tháng nhuân
- Nh = " (Nh)" ' Chi dùng cho tháng nhuân
- Else
- ThángAL = ThángAL + 1
- End If
- If ThángAL > 12 Then ThángAL = ThángAL - 12
- Else
- Exit For
- End If
- Next
- 'TênNgàyAL = Can(DateDiff("d", #4/1/1800#, data) Mod 10) & " " & Chi(DateDiff("d", #4/1/1800#, data) Mod 12)
- 'TênThángAL = Can((Nam * 12 + ThángAL + 7) Mod 10) & " " & Chi((ThángAL + 5) Mod 12)
- If ((ThángAL = 11) Or (ThángAL = 12)) And (data < TêTDL + 60) Then ' Ðiê'u chinh tháng 11, 12 Ðâ'u nam DL
- Nam = Year(TêTDL) - 1
- Else
- Nam = Year(TêTDL)
- End If
- TênNaM = Can(Nam Mod 10) & " " & Chi(Nam Mod 12)
- End Function
- Private Sub Command1_Click()
- ToAL #12/31/2016#
- MsgBox NgàyAL & "/" & ThángAL & "/" & TênNaM
- End Sub
Hay không?
