- Algoritmo para calcular el día de la semana
-
El algoritmo para calcular el día de la semana tiene como finalidad saber el día de la semana para una fecha dada tanto del pasado o el futuro. En realidad, hay un conjunto numeroso de algoritmos para realizar este cálculo, entre ellos está el Algoritmo Doomsday, aunque todos son variantes pequeñas entre ellos, de tal forma que empleando diferentes conjuntos de reglas se obtiene el mismo resultado. Una aplicación típica de este algoritmo es calcular el día de la semana en que nació una persona o que ocurrió un evento especial.
Contenido
Introducción
El fundamento de toda esta familia de algoritmos para calcular el día de la semana es:
- Enumerar los días de la semana comenzando por el cero hasta el seis de esta forma podemos emplear aritmética módulo 7 para añadir el número de días transcurridos desde el comienzo de un periodo.
- Buscar o calcular mediante una regla en qué día de la semana comenzó un siglo.
- Buscar o calcular en qué día de la semana comenzó un año dado.
- Buscar o calcular en qué día comienza un mes dado, sabiendo el año.
Conceptos útiles
Meses correspondientes
El concepto "meses correspondientes" se aplica a aquellos meses del calendario que empiezan en el mismo día de la semana. Por ejemplo, septiembre y diciembre son correspondientes ya que el 1 de septiembre cae en el mismo día de la semana que 1 de diciembre. Los meses son correspondientes si el número de días entre ellos es divisible entre 7. Por ejemplo febrero corresponde con marzo ya que febrero tiene 28 días, es decir, un número divisible entre 7, y 28 días son exactamente cuatro semanas. Los meses se corresponden del siguiente modo:
En un año común
- Enero y octubre.
- Febrero, marzo y noviembre.
- Abril y julio.
- Septiembre y diciembre.
- Mayo, junio y agosto no se corresponden con ningún mes.
En un año bisiesto
- Enero, abril y julio.
- Febrero y agosto.
- Marzo y noviembre.
- Septiembre y diciembre.
- Mayo, junio y octubre no se corresponden con ningún mes.
Procedimiento
Para determinar el día de la semana de una fecha del calendario gregoriano, podemos seguir el siguiente procedimiento:
- Calcular la cantidad de días transcurridos hasta la fecha.
- Calcular el módulo con respecto a 7.
- El valor obtenido será el día de la semana de la fecha.
Esto lo podemos expresar de la siguiente manera:
Sin embargo, en realidad no debemos calcular el total de días, sino únicamente los módulos con respecto a 7. Entonces, nuestra expresión se reduce así:
Donde:
- = día de la semana
- = Año
- = Días transcurridos hasta antes del primer día del mes
- = Día
- = Módulo
- En todas las divisones solo se consideran las cifras enteras.
Además, tengamos en cuenta que debemos conocer el módulo correspondiente a cada "inicio" de mes. Así, Si estamos buscando una fecha de julio, el módulo sería:
Crearemos entonces una tabla que contenga los módulos acumulados por mes.
Meses E F M A M J J A S O N D Año regular 0 3 3 6 1 4 6 2 5 0 3 5 Año bisiesto 0 3 4 0 2 5 0 3 6 1 4 6 Por último nuestro algoritmo quedaría así:
Donde:
-
- = Módulo correspondiente al mes.
Ejemplo
Calcular el día de la semana para el 25 de mayo de 2007:
Si el 0 corresponde al domingo, entonces 5 corresponde a viernes.
Categorías:- Wikipedia:Trasladar a Wikilibros
- Algoritmos
Wikimedia foundation. 2010.