Cálculo de la fecha de Semana Santa
La llamada a la función que calcula la fecha del Domingo de Resurrección se realiza de la siguiente forma:
Private Sub XecSS()
Dim intAnio As Integer
intAnio = InputBox("¿ Qué año ?")
MsgBox "Domingo de resureccion es: " & funSemanaSanta(intAnio), vbInformation
End Sub
El año debe estar comprendido entre 1583 (inicio del calendario Gregoriano) y 2299. La función que nos devuelve la fecha buscada es la siguiente:
Public Function funSemanaSanta(ByVal Pon_Anio As Integer) As String Dim bytA As Byte Dim bytB As Byte Dim bytC As Byte Dim bytD As Byte Dim bytN As Byte Dim bytM As Byte Dim bytX As Byte Dim bytY As Byte If Pon_Anio >= 1583 And Pon_Anio < = 1699 Then bytX = 22 bytY = 2 ElseIf Pon_Anio >= 1700 And Pon_Anio < = 1799 Then bytX = 23 bytY = 3 ElseIf Pon_Anio >= 1800 And Pon_Anio < = 1899 Then bytX = 23 bytY = 4 ElseIf Pon_Anio >= 1900 And Pon_Anio < = 2099 Then bytX = 24 bytY = 5 ElseIf Pon_Anio >= 2100 And Pon_Anio < = 2199 Then bytX = 24 bytY = 6 ElseIf Pon_Anio >= 2200 And Pon_Anio < = 2299 Then bytX = 25 bytY = 0 Else MsgBox "Error", vbCritical Exit Function End If bytA = Pon_Anio Mod 19 bytB = Pon_Anio Mod 4 bytC = Pon_Anio Mod 7 bytD = ((19 * bytA) + bytX) Mod 30 bytN = ((2 * bytB) + (4 * bytC) + (6 * bytD) + bytY) Mod 7 bytM = bytD + bytN If bytM < 10 Then Rem marzo funSemanaSanta = bytM + 22 & " Marzo" Else Rem abril If bytM - 9 = 26 Then funSemanaSanta = "19 Abril" ElseIf bytD = 28 And bytN = 6 And bytA > 10 Then funSemanaSanta = "18 Abril" Else funSemanaSanta = bytD + bytN - 9 & " Abril" End If End If End Function
Fuente: javier.mil
Categorías:Microsoft Access
cálculo, fecha, santa, semana