Algorítimo - Dia da semana
Publicado por Ezequias Rocha (última atualização em 14/07/2011)
[ Hits: 9.987 ]
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)); }
Sequência fibonacci com 35 linhas e for
Calculo calorico visando perca de gordura e definicao muscular
Angelinux Scripts - Palpite para Megasena em C
Método de Power para calcular o autovelor dominante de uma matriz
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)