“Conocimientos Programación>Lenguajes De Programación

Cómo calcular el día de la semana para cualquier año

2013/12/30
Un algoritmo común para calcular el día de la semana de una fecha concreta es el algoritmo de Zeller . El algoritmo fue publicado en 1882 y diseñado para ser trabajado a mano, pero se puede implementar fácilmente en el software. Algoritmo de Zeller trabaja por encontrar el día de la semana comenzó el siglo , a continuación, la construcción de allí mediante la adición de año , mes y día . Es necesario entender cómo funciona el algoritmo Una buena comprensión de aritmética modular , pero cualquier persona puede aplicarla siguiendo las instrucciones . Instrucciones
1

Preparar las entradas . El algoritmo de espera de un día , mes y año . Números algoritmo

de Zeller los meses de tres a 14 , a partir de marzo y terminando con febrero. Esto garantiza que los días bisiestos siempre caen al final del año , lo que simplifica los cálculos.

Si mes < 3 entonces, mes = mes + 12
2

Calcular el siglo y el años del siglo. El siglo de 1950 debe ser de 19 , a pesar de que cae en el siglo XX.

Siglo = baja ( año /100 ) yearOfCentury = año mod 100
3

Buscar el día de la semana en que comenzó el siglo .

díadelasemana = piso ( siglo /4 ) + 5 * siglo

Zeller determinó que este cálculo , en módulo siete, dará el día de la semana que cualquier siglo comenzó . El cálculo piso maneja el hecho de que cada cuarto del siglo es de un día salto corto.
4

calcular el día de la semana que el año comenzó el .

Díadelasemana = díadelasemana yearOfCentury + + piso ( yearOfCentury /4 )

Cada año se inicia el día siguiente de la semana que en el año anterior , a excepción de los años bisiestos . Este cálculo , módulo siete, da el día de la semana del primer día del año.
5

Encuentre el día de la semana que se inició en el mes .

Díadelasemana = díadelasemana + piso ( ( mes + 1 ) * 26 ) /10 )

Este es el corazón del algoritmo de Zeller . Zeller observó que este cálculo es capaz de determinar en qué día de la semana se iniciará al mes . Se elimina la necesidad de tablas de búsqueda para determinar la longitud de cada mes .
6

Añada el día del mes y calcular el día de la semana en que la fecha cae .

Díadelasemana = díadelasemana + daydayOfWeek = díadelasemana mod 7
7

convertir la fecha a las normas ISO fecha de semanas .

ISO fecha de semana del día de la semana comienza con el lunes = 1 . El algoritmo de Zeller utiliza Sábado = 0 . La conversión utiliza aritmética simple módulo .

Díadelasemana = (( díadelasemana + 5 ) mod 7 ) + 1

Lenguajes De Programación
Pérdida de memoria Herramientas de detección
Cómo utilizar el comando SNMP para obtener una etiqueta de OID
Cómo configurar un archivo EXE Cambiar
Cómo copiar y pegar una página web a otro sitio web
Cómo escribir un informe sobre la programación
Cómo crear un archivo EXE desde un archivo Bat
Cómo aprender Fortran en un Mac
Mainframe JCL Procedimientos
Conocimientos Informáticos © http://www.ordenador.online