*---------------------------------------------------------------
* FUNCTION _Pascua(tnAnio)
*---------------------------------------------------------------
* USE: _Pascua(1999)
* PARAMETRO: Año a calcular
* RETORNO: Fecha del Domingo de Pascua
*---------------------------------------------------------------
FUNCTION _Pascua(tnAnio)
LOCAL lnCentena, lnAux, lnNroAureo, lnDomingo, lnEpactaJul, ;
lnCorrSolar, lnCorrLunar, lnEpactaGreg, lnDiasLunaP, ;
lnDiasLuna15, lnDiasPascua, ldFecIni, ldFecPascua
IF NOT BETWEEN(tnAnio,1000,9999)
MESSAGEBOX("Rango inválido [1000..9999]")
RETURN {//}
ENDIF
lnCentena = INT(tnAnio / 100)
lnAux = (tnAnio + 1) % 19
lnNroAureo = lnAux + (19 * INT((19 - lnAux) / 19))
lnDomingo = 7 + (1 - tnAnio - INT(tnAnio / 4) + lnCentena - INT(lnCentena / 4)) % 7
lnEpactaJul = ((11 * lnNroAureo) - 10) % 30
lnCorrSolar = - (lnCentena - 16) + INT((lnCentena- 16) / 4)
lnCorrLunar = INT((lnCentena - 15 - INT((lnCentena - 17) / 25)) / 3)
lnEpactaGreg = (30 + lnEpactaJul + lnCorrSolar + lnCorrLunar) % 30
lnDiasLunaP = 24 - lnEpactaGreg + (30 * INT(lnEpactaGreg / 24))
lnDiasLuna15 = (27 - lnEpactaGreg + (30 * INT(lnEpactaGreg / 24))) % 7
lnDiasPascua = lnDiasLunaP + (7 + lnDomingo - lnDiasLuna15) % 7
ldFecIni = DATE(tnAnio, 03, 21)
ldFecPascua = ldFecIni + lnDiasPascua
RETURN ldFecPascua
ENDFUNC
Menu
▼
29 de abril de 2000
Calcular el domingo de pascua de un año
Con esta función podemos conocer la fecha del Domingo de Pascua de cualquier año.
No hay comentarios.:
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.