| Casa | Hardware | Redes | Programación | software | Criticar | Sistemas |   
Programación  
  • C /C + + Programming

  • Lenguajes De Programación

  • Delphi Programación

  • Programación Java

  • JavaScript Programación

  • Programación PHP /MySQL

  • Perl Programming

  • Python Programming

  • Rubí Programación

  • Visual Basics Programación
  •  
    Conocimientos Informáticos >> Programación >> Lenguajes De Programación >> Content
    Cómo calcular el día de la semana para cualquier año
    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

    Previous :

    next :
      Artículos relacionados
    ·Cómo crear un formulario de cuadro de lista de fechas …
    ·Cómo dividir valores de un campo donde un personaje ex…
    ·Tipos de datos 
    ·Cómo quitar fines de línea de QString 
    ·Cómo truncar una partición de Oracle 
    ·Cómo hacer un botón predeterminado de NET 
    ·Cómo anclar un DIV al final de la página 
    ·¿Qué es un diagrama de flujo de programación 
    ·Cómo crear Esquinas redondeadas en DIV 
    ·Cómo aprender FORTRAN 
      Artículos destacados
    ·Cómo ejecutar VB.NET 
    ·Cómo arreglar un desbordamiento de búfer 
    ·Cómo programar con Prolog 
    ·Cómo obtener los nombres de los meses entre dos fechas…
    ·Cómo insertar un ComboBox en C -Sharp 
    ·Cómo conectarse a un sitio web con Visual Basic 6 
    ·Cómo compilar C Proyectos 
    ·Cómo utilizar Xerces en Eclipse 
    ·Cómo crear una cuadrícula de datos en Visual Basic 
    ·Cómo dividir una cadena en una lista en Python 
    Copyright © Conocimientos Informáticos http://ordenador.wingwit.com