FoxPro/Visual FoxPro - Cómo se calcula que fecha caera la semana santa ?

 
Vista:

Cómo se calcula que fecha caera la semana santa ?

Publicado por Pedro Gómez (4 intervenciones) el 23/06/2000 00:00:00
Me gustaría saber si existe alguna forma de calcular en que fecha caeran los días jueves, viernes y sabado santo de la semana santa, de modo a poder generarlos automaticamente y cargarlos a una tabla de feriados para no tener que cargarlos cada año. Desde ya muchisimas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cómo se calcula que fecha caera la semana santa

Publicado por Pedro Gómez (4 intervenciones) el 05/07/2000 00:00:00
Ya encontre la formula, por si les interese aqui va :


ok = .t.
do while ok
DEFINE WINDOW pascua FROM 5,10 TO 13,55 title ´Calculo Domingo de Pascua´;
FLOAT DOUBLE COLOR SCHEME 6
año = 0
ACTIVATE WINDOW pascua
@ 1,2 say ´Año a Calcular : ´
@ 1,19 GET año SIZE 1, 4 PICTURE ´9999´ STYLE ´T´
@ 5,12 GET okcancel PICTURE ´@*HT \!Aceptar;\?Cancelar´ SIZE 1,10,2 DEFAULT 0
READ CYCLE
RELEASE WINDOW pascua
IF okcancel = 2
wait window ´Cálculo Cancelado...´ nowait
else
fecha = _pascua(año)
wait window ´La fecha del Domingo de Pascua es ´ + dtoc(fecha)
endif
wait window ´Desea continuar (S/N)´ to resp
if upper(resp) = ´S´
ok = .t.
else
ok = .f.
endif
enddo
return




*------------------------------------------
* FUNCTION _Pascua(tnAnio)
*------------------------------------------
* Función que calcula el Domingo de Pascua
* de un año pasado como parámetro
* USO: _Pascua(1999)
* PARAMETRO: Año a calcular
* RETORNO: Fecha del Domingo de Pascua
* AUTOR: Luis María Guayán
* EMAIL: [email protected]
*------------------------------------------
FUNCTION _Pascua
Parameter tnAnio
LOCAL lnCentena, lnAux, lnNroAureo, lnDomingo, lnEpactaJul, ;
lnCorrSolar, lnCorrLunar, lnEpactaGreg, lnDiasLunaP, ;
lnDiasLuna15, lnDiasPascua, ldFecIni, ldFecPascua

IF NOT BE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo se calcula que fecha caera la semana santa

Publicado por Pedro Gómez (4 intervenciones) el 05/07/2000 00:00:00
Parece que no salio todo, asi que aqui va la continuacion:

*------------------------------------------
* FUNCTION _Pascua(tnAnio)
*------------------------------------------
* Función que calcula el Domingo de Pascua
* de un año pasado como parámetro
* USO: _Pascua(1999)
* PARAMETRO: Año a calcular
* RETORNO: Fecha del Domingo de Pascua
* AUTOR: Luis María Guayán
* EMAIL: [email protected]
*------------------------------------------
FUNCTION _Pascua
Parameter tnAnio
LOCAL lnCentena, lnAux, lnNroAureo, lnDomingo, lnEpactaJul, ;
lnCorrSolar, lnCorrLunar, lnEpactaGreg, lnDiasLunaP, ;
lnDiasLuna15, lnDiasPascua, ldFecIni, ldFecPascua

IF NOT BETWEEN(tnAnio,1000,9999)
MESSAGEBOX("Rango vá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 =
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar