Programação  
 
Conhecimento computador >> Programação >> Programação De Computador Idiomas >> 
Como calcular o dia da semana para qualquer ano
Um algoritmo comum para calcular o dia da semana de uma data específica é o algoritmo de Zeller . O algoritmo foi publicado em 1882 e concebido para ser trabalhada à mão , mas pode ser facilmente implementado em software . Algoritmo funciona da Zeller por encontrar o dia da semana, o século começou , em seguida, construir a partir daí , adicionando anos, meses e dias. Uma boa compreensão da aritmética modulo é necessário entender como o algoritmo funciona, mas qualquer um pode implementá-lo , seguindo as instruções . Instruções
1

Prepare os insumos. O algoritmo espera um dia, mês e ano. Algoritmo números

do Zeller os meses de três a 14 , começando com março e terminando com fevereiro. Isso garante que os dias bissextos sempre caem no final do ano , o que simplifica os cálculos .

Se mês <3 então , mês = mês + 12
2

Calcule o século eo ano do século . O século em 1950 deve ser de 19 , mesmo que cai no século XX .

Século = floor (ano /100) yearOfCentury = ano mod 100
3

Encontre o dia da semana em que o século começou .

dayOfWeek = andar ( século /4) + 5 * século

Zeller determinou que este cálculo , módulo sete, vai dar o dia da semana que qualquer dado século começou . O cálculo chão lida com o fato de que cada quarto século é curto um dia bissexto.
4

Calcule o dia da semana em que o ano começou em .

DayOfWeek = dayOfWeek + + yearOfCentury andar ( yearOfCentury /4)

Todo ano começa no próximo dia da semana do que no ano anterior, exceto para os anos bissextos . Este cálculo , módulo sete, dá o dia da semana do primeiro dia do ano.
5

Encontre o dia da semana que o mês começou por diante.

DayOfWeek = dayOfWeek + floor ( (mês + 1) * 26) /10)

Este é o coração do algoritmo de Zeller . Zeller observou que este cálculo é capaz de determinar em que dia da semana por mês vai começar. Ele elimina a necessidade de tabelas de pesquisa para determinar o comprimento de cada mês.
6

Adicione o dia do mês e calcular o dia da semana em que a data cai.

DayOfWeek = dayOfWeek + daydayOfWeek = dayOfWeek mod 7
7

converter a data para as normas ISO data semana . data semana

ISO dia da semana começa com segunda-feira = 1. Algoritmo do Zeller usa sábado = 0. A conversão usa simples aritmética modulo .

DayOfWeek = (( dayOfWeek + 5) mod 7 ) + 1

Anterior :

Próximo : No
  Os artigos relacionados
·Como usar uma rota estática persistente 
·SQL Scripting Tutorial 
·Como escrever um XML em ASP.NET com SqlDataReader 
·Como usar Asp.net para redirecionar arquivos HTM 
·Como Digite um Overstrike 
·Como escrever um Relatório de OEM 
·Como Fazer um Console Eclipse Longer 
·Como Excluir Histórico em ASP.NET 
·Como ler um arquivo de comprimento variável em COBOL 
·Como separar um arquivo /etc /passwd usando AWK 
  Artigos em destaque
·Quais são as duas funções de DMAP 
·Como criar Karaoke Software 
·Como converter um Int em um String em T-SQL 
·Como aprender C Com Xcode 
·Como exibir nomes de objetos em MATLAB 
·Como definir o Caret Posição em uma DIV em JavaScript…
·Como adicionar um apóstrofo no CL AS/400 
·Como ocultar um programa no AppleScript 
·Como escrever Políticas incorporados gerente Evento 
·Meu Windows Mobile não abre arquivos ASHX 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados