Usuario anónimo ¿Quieres tener tu propio blog?
Crear blog gratis en OboLog

Detectar Semana Santa con Javascript

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

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

Relacionados con Detectar Semana Santa con Javascript

Deja tu comentario sobre Detectar Semana Santa con Javascript

Deja tu comentario
Necesitas tener javascript activado para poder dejar comentarios

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.

Sobre esta anotación

RobFeb

RobFeb escribió esta anotación hace 11 meses. En ella habla sobre Consejos, Javascript y Utilidades.

Aún no hay ningún comentario.

Tu podrías dejar el primero.

Login

Comentarios

FELIZ AÑO NUEVO, bola de cristal... (wendy lisset)
bueno mi feliz año nuevo seria que una persona que yo amo ahora me amara y me quiera , y que fuera ......(20 ene)
Envia mails a traves de gmail con python (pablo)
Muy bueno el dato. Vengo desde hace ejemplos viendo como usar ese modulo. Y bueno se agradece ......(01 ene)
Juego Test del Amor: Compatibilidad (ANONIMO)
JVDIFUGHDRIBJRS89HJOFIJBVIFDGJBOKFDJGV8R0EKJ`HRVDSLÑ,R ......(20 dic)
Juego Test del Amor: Compatibilidad (ariadna alegret )
fanta , cocacola, mediavuelta y toma  furuyo estampado en un muro.tonto y hili quien lo lea.vivo a ......(20 dic)
Juego Test del Amor: Compatibilidad (cerotitoo)
el amor apesta...olo viene y se vaay te deja con las ganas de amarr!!...(12 dic)

Más comentados

Juego Test del Amor: Compatibilidad (37)
Os traigo una nueva entrega de los juegos simples usando javascript. Seguramente verás muchas ...
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 ...
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 ...
Que cenamos esta noche? random de python (2)
Anoche no tenía ni idea que cenaba, para solventarlo se me ocurrió un pequeño script para dejarlo ...
Componentes Gzip (2)
El tiempo que se tarda en tranferir diferentes componentes a través de la red, se puede reducir de ...

Suscripción

Suscríbete al Feed RSS XML

También puedes suscribirte directamente con alguno de los siguientes enlaces:

  • Suscríbete en Bloglines
  • Suscríbete en Google