Avisar de contenido inadecuado

Detectar Semana Santa con Javascript

{
}

Es posible que en estas fiestas cercanas tengamos la necesidad de saber en qué días cae la semana santa.

Podemos determinar que el domingo de resurrección será el primer domingo de luna llena de primavera.
Y sabemos que la primavera empieza el 21 de marzo.

A partir de ahí tenemos claro que el jueves y viernes es festivo y el lunes de pascua en algunas comunidades.

A través de los 'Hijos de la Divina Voluntad'  nos encontramos con una página con el código Javascript que calcula ese domingo en función del año de una forma curiosa y lógica!.

Dicha función está extraida de  la fórmula de Gauss que podemos observar en la página de la wikipedia con todas sus explicaciones:

Wikipedia: Cálculo de la fecha de Pascua


Aquí está la función para Javascript.

function CalculePascua (Agno, Calendario) {
if (Calendario == "GREGORIANO") {
a=Agno%19
b=Math.floor(Agno/100)
c=Agno%100
d=Math.floor(b/4)
e=b%4
f=Math.floor((b+8)/25)
g=Math.floor((b-f+1)/3)
h=(19*a+b-d-g+15)%30
i=Math.floor(c/4)
k=c%4
l=(32+2*e+2*i-h-k)%7
m=Math.floor((a+11*h+22*l)/451)
p=(h+l-7*m+114)
// Devuelve un registro Registro.Dia_Res / Registro.Mes_Res
return {Dia : (p%31)+1, Mes : Math.floor(p/31)}
} else if (calendario == "JULIANO") {
// Para años anteriores a 1583 (Calendário Juliano):
a = Agno % 4
b = Agno % 7
b = Agno % 19
d = (19*c + 15) % 30
e = (2*a + 4*b - d + 34) % 7
f = Math.floor((d + e + 114) / 31)
g = (d + e + 114) % 31
// Devuelve un registro Registro.Dia_Res / Registro.Mes_Res
return {Dia : g+1, Mes : f}
} else return {Dia : 0, Mes : 0}
} // CalculePascua

Diferenciamos entre Gregoriano y Juliano, tomando como ejemplo el gregoriano.

Ejemplo:

Agno=>2009
a=Agno%19 ( ) => 14
b=Math.floor(Agno/100) => 20
c=Agno%100 => 9
d=Math.floor(b/4)  => 5
e=b%4 => 0
f=Math.floor((b+8)/25)  => 1
g=Math.floor((b-f+1)/3) => 6
h=(19*a+b-d-g+15)%30 => 20
i=Math.floor(c/4) => 2
k=c%4  => 1
l=(32+2*e+2*i-h-k)%7  => 1
m=Math.floor((a+11*h+22*l)/451) => 0
p=(h+l-7*m+114) => 135

Dia : (p%31)+1 =>12

Mes : Math.floor(p/31) =>4

12 de marzo es el domingo de resurrección.

En el enlade de la wikipedia podemos obtener ejemplos para:

  •   Java
  •   Python
  •   Perl
  •   PHP
  •   Turbo Pascal
  •   pl/pgsql de postgresql
  •   PowerBuilder
{
}

Deja tu comentario Detectar Semana Santa con Javascript

Identifícate en OboLog, o crea tu blog gratis si aún no estás registrado.

Avatar de usuario Tu nombre