Algorítimo - Dia da semana
Publicado por Ezequias Rocha (última atualização em 14/07/2011)
[ Hits: 10.053 ]
Download Dia_Da_Semana.c (versão 2)
Este algorítimo foi implementado em uma aplicação que, configurado uma dada data, seria necessário mostrar ao usuário o dia da semana. Trata-se de uma aplicação bastante conhecida e, particularmente, este algorítimo, é o mais utilizado.
Todavia, é necessário certas precauções no trato dos números, pois, no momento que o sistema trunca os decimais, erro podem surgir, principalmente nas divisões.
Mostro abaixo uma implementação que usa força bruta para evitar este erro.
Particularidades do algorítimo:
Autor: Christian Zeller (http://en.wikipedia.org/wiki/Christian_Zeller)
Calendário: Gregoriano (http://en.wikipedia.org/wiki/Gregorian_calendar)
Dias da semana: 0 = sábado, 1 = segunda-feira, 2 = terça-feira ...
Meses: janeiro e fevereiro são considerados meses 13 e 14 do ano anterior
Embraces!
Versão 2 - Enviado por Ezequias Rocha em 22/02/2011
Changelog: Erro na linha
y = ((mes>12) ? (ano-1) : ano);
Sendo substituída por:
y = ((m>12) ? (ano-1) : ano);
unsigned char DiaSemana (unsigned char dia, unsigned char mes, unsigned int ano) { unsigned int q, m, ret, y; m = (mes <3) ? (mes + 12) : mes; y = ((mes>12) ? (ano-1) : ano); q = (unsigned int)(dia) + (unsigned int)(((m+1)*26)/10) + y + // Calendário Gregoriano (unsigned int)(y/4) + 6*((unsigned int)(y/100)) +(unsigned int)(y/400); ret = (q % 7); return ((unsigned char)(ret)); }
Busca do código do produto-Vetores----
Calcular determinante de matrizes
Matrizes esparsas, produto por escalar e produto por um vetor
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
IRPF 2025 não consegue entregar a declaração (2)
problema com dualboot dualboot X xubuntu (2)