Algoritmo para determinar el día de la semana

Algoritmo para determinar el día de la semana

Algoritmo para determinar el día de la semana

Para determinar el día de la semana de una fecha del calendario gregoriano, debemos seguir el siguiente procedimiento:

  1. Calcular la cantidad de días transcurridos hasta la fecha.
  2. Calcular el módulo con respecto a 7.
  3. El valor obtenido será el día de la semana de la fecha.

Esto lo podemos expresar de la siguiente manera:

d = ((A - 1) \cdot 365 + \left ( \frac{A-1}{4} - 3 \cdot \frac{\frac{A - 1}{100} + 1}{4} \right ) + DM + D) % 7 \,\!

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í:

d = ((A - 1) % 7 + \left ( \frac{A-1}{4} - 3 \cdot \frac{\frac{A - 1}{100} + 1}{4} \right ) % 7 + DM % 7 + D % 7) % 7 \,\!

Donde:

  • d \,\! = día de la semana
  • A \,\! = Año
  • DM \,\! = Días transcurridos hasta antes del primer día del mes
  • D \,\! = 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:

x = (31 % 7 + 28 % 7 + 31 % 7 + 30 % 7 + 31 % 7 + 30 % 7) % 7 \,\!
x = (3 + 0 + 3 + 2 + 3 + 2) % 7 \,\!
x = 6 \,\!

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í:

d = ((A - 1) % 7 + \left ( \frac{A-1}{4} - 3 \cdot \frac{\frac{A - 1}{100} + 1}{4} \right ) % 7 + M + D % 7) % 7 \,\!

Donde:

M \,\! = Módulo correspondiente al mes.

Ejemplo

Calcular el día de la semana para el 25 de mayo de 2007:

  • A = 2007 \,\!
  • M = 1 \,\!
  • D = 25 \,\!


(A - 1) % 7 = 2006 % 7 = 4 \,\!
\left (\frac{A-1}{4} - \left ( 3 \cdot \frac{\frac{A - 1}{100} + 1}{4}\right ) \right ) % 7 = (501 - \left (3 \cdot 5\right ) ) % 7 = 3 \,\!
D % 7 = 25 % 7 = 4 \,\!
d = (4 + 3 + 1 + 4) % 7 = 5 \,\!

Si el 0 corresponde al domingo, entonces 5 corresponde a viernes.

Véase también

Obtenido de "Algoritmo para determinar el d%C3%ADa de la semana"

Wikimedia foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Mira otros diccionarios:

  • Algoritmo para calcular el día de la semana — Este artículo o sección debería estar en Wikilibros ya que es una guía o manual en vez de contenido enciclopédico. [ver página en Wikilibros] Si modificas el texto dándole una orientación más enciclopédica, por favor quita este aviso …   Wikipedia Español

  • Wikipedia:Fusionar — Categoría:Wikipedia:Fusionar Saltar a navegación, búsqueda Atajos CAT:APFCAT:APF Atajos Para colocar un artículo en esta categoría, utilice las plantillas {{fusionar}}, {{fusionar en}} y {{fusionar desde}}. Estos artículos han sido marcados para… …   Wikipedia Español

  • Congruencia de Zeller — La congruencia de Zeller es un algoritmo ideado por Julius Christian Johannes Zeller para calcular el día de la semana de cualquier fecha del calendario. Contenido 1 Fórmula 2 Análisis 3 Algoritmo 3.1 …   Wikipedia Español

  • Calendario republicano francés — Saltar a navegación, búsqueda El calendario republicano francés es un calendario propuesto durante la Revolución Francesa y adoptado por la Convención Nacional Francesa, que lo empleó entre 1792 y 1806. El diseño intentaba adaptar el calendario… …   Wikipedia Español

  • Wikipedia:Café (todos) — Atajos WP:CWP:C …   Wikipedia Español

  • Wikipedia:Café/Portal/Archivo/Propuestas/Actual — Café: Propuestas …   Wikipedia Español

  • The World Ends with You — Esta página o sección está siendo traducida del idioma inglés a partir del artículo The World Ends With You, razón por la cual puede haber lagunas de contenidos, errores sintácticos o escritos sin traducir. Puedes colaborar con Wikipedia …   Wikipedia Español

  • Ajedrez por computadora — GNU Chess 5.07 en interface WinBoard 4.2.7. En el siglo XVIII empezó a difundirse la idea de crear una computadora capaz de jugar al ajedrez. En el año 1769, un jugador de ajedrez autómata llamado El Turco[1] …   Wikipedia Español

  • Minería de datos — La minería de datos (DM, Data Mining) consiste en la extracción no trivial de información que reside de manera implícita en los datos. Dicha información era previamente desconocida y podrá resultar útil para algún proceso. En otras palabras, la… …   Wikipedia Español

  • Gramática del español — Estatua del gramático Antonio de Nebrija en la Biblioteca Nacional de Madrid, por Anselmo Nogués. En 1492, Nebrija fue el primer europeo en escribir una gramática de una lengua románica o neolatina, el español …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”