Avisar de contenido inadecuado

Detectar Semana Santa con Javascript

por RobFeb
martes, 24 de febrero del 2009 a las 07:00

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 sobre Detectar Semana Santa con Javascript

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

De esta forma, además, podrás mostrar tu imagen en los comentarios y no tendrás que rellenar tus datos cada vez.

Deja tu comentario

Sobre este artículo

RobFeb

RobFeb escribió este artículo hace 4 años. Habla sobre consejos , javascript , utilidades .

Aún no hay ningún comentario.

Tu podrías dejar el primero.

Entrar

Comentarios

Enlaces JSON y .NET (Vaginal Mesh Lawsuit)
NET is well designed software (hace 1 año)
Juego Test del Amor: Compatibilidad (caca)
noooooooooo eeeeeeeeennnnnnnnnnttttttttiiiiiiiiiiiiiiiieeeeeeeeeennnnnnnnnnnnnnnnddddddddddddoooooooooooooooooo... (hace 1 año)
Enlaces JSON y .NET (Mesothelioma)
JSON and links. NET is well designed software and it is useful for .NET developer.  (hace 1 año)
Enlaces JSON y .NET (mesothelioma )
Sección bonito! Que se siente después de una gran lectura Tal como esta, muy informativo e interesante. Que... (hace 1 año)
Empecemos con GIS y geodjango (Cesar)
hola, estoy investigando sobre el tema que trata este post, especificamente sobre Postgis, quisiera saber si los sistemas... (hace 1 año)

Más comentados

Juego Test del Amor: Compatibilidad (54)
Os traigo una nueva entrega de los juegos simples usando javascript. Seguramente verás muchas aplicaciones del...
Enlaces JSON y .NET (4)
Imprescindible El comienzo que es JSON Microsoft versión oficial y uso Consultas en el forum...
Validar un DNI/NIF con Javascript (3)
Función para validar un DNI o NIF con Javascript, para detectar que es un identificador válido.  ...
CheckColor Juego: Color Letra (3)
Ya que hace poco comentamos la opción de cambiar los colores de las celdas de una tabla, hoy os presento el...
Juego RiPitPlis: Repite la secuencia (3)
Os presento el proyecto RiPitPlis 1.0 que está basado en el clásico Juego electrónico 'Simon' de...