“Conocimiento Programación>Lenguajes De Programación

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

2011/11/12
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
Razones para crear un subprograma en Programación
Tutorial para la API de la cámara Phonegap
Cómo determinar el número de botones en una barra de herramientas de WPF
Cómo escribir scripts Bash para aceptar parámetros de entrada
Cómo crear Desplazamiento de texto en HTML
Cómo quitar los blancos de cola en el extremo de una línea de texto en un script de shell
Introducción a los Pseudocódigo
Cómo crear un certificado DER
Conocimiento de la computadora © http://www.ordenador.online