Option Compare Database
Option Explicit
Enum enuFiestas
MartesCarnaval = -47
MiercolesCeniza = -46
DomingoRamos = -7
JuevesSanto = -3
ViernesSanto = -2
SabadoSanto = -1
DomingoPascua = 0
ascension = 39
pentecostes = 49
CorpusCristi = 60
End Enum
'---------------------------------------------------------------------------------------
' Procedure : FiestaMovil
' DateTime : 25/09/2005
' Author : José Bengoechea Ibaceta (Chea)
' Purpose : Devuelve la fecha de la fiesta móvil correspondiente a la festividad
' : que se le pase como argumento en la variable Fiesta
' Estás autorizado a utilizar este código dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web, por favor,
' contactar con el autor en
'
' UA@bengoechea.net
'---------------------------------------------------------------------------------------
Public Function FiestaMovil(año As Long, Fiesta As enuFiestas) As Date
Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer
Dim f As Integer, g As Integer, h As Integer, i As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer, p As Integer
Dim PascuaButcher As Date
a = año Mod 19
b = año \ 100
c = año Mod 100
d = b \ 4
e = b Mod 4
f = (b + 8) \ 25
g = (b - f + 1) \ 3
h = ((19 * a) + b - d - g + 15) Mod 30
i = c \ 4
k = c Mod 4
l = (32 + (2 * e) + (2 * i) - h - k) Mod 7
m = (a + (11 * h) + (22 * l)) \ 451
n = (h + l - (7 * m) + 114) \ 31
p = (h + l - (7 * m) + 114) Mod 31
PascuaButcher = DateSerial(año, n, p + 1)
FiestaMovil = PascuaButcher + Fiesta
End Function
|