Congruência de Zeller — Dia da Semana
Calcula o dia da semana de qualquer data usando a Congruência de Zeller — algoritmo de 1882 que só requer aritmética modular. Mostra cada etapa do cálculo (q, m, K, J, h) para fins didáticos. Suporta calendário Juliano e Gregoriano.
Sobre a Congruência de Zeller
Publicada por Christian Zeller em 1882, a congruência permite computar o dia da semana só com aritmética modular: h = (q + ⌊13(m+1)/5⌋ + K + ⌊K/4⌋ + ⌊J/4⌋ + 5J) mod 7 (Gregoriano). Janeiro e fevereiro são tratados como meses 13 e 14 do ano anterior. Por convenção: 0 = Sábado, 1 = Domingo, ..., 6 = Sexta-feira.
A congruência de Zeller, passo a passo
Christian Zeller publicou nos anos 1880 uma fórmula fechada que devolve o dia da semana de uma data em uma única expressão, sem tabela e sem laço. Ela ainda aparece em código porque é curta e usa só divisão inteira — nada de ponto flutuante, nada de biblioteca de datas. A página mostra cada termo separado, o que serve tanto para conferir uma implementação quanto para entender de onde sai cada número.
O truque que faz a fórmula funcionar é tratar janeiro e fevereiro como os meses 13 e 14 do ano anterior. Com isso o mês de tamanho variável passa a ser o último do ano, e o dia extra do ano bissexto deixa de deslocar todos os meses seguintes. É o mesmo artifício que aparece em quase todo algoritmo de calendário sério, inclusive nos que convertem para dia juliano.
Note que o resultado começa no sábado: a fórmula devolve zero para sábado, um para domingo, e assim por diante. É uma convenção que pega desprevenido quem espera domingo como zero, e a causa mais comum de erro de sete dias em implementações copiadas às pressas. A página aceita também o calendário juliano, que muda dois termos da expressão, e recusa datas que não existem, como 31 de fevereiro.
Perguntas frequentes
Por que a fórmula começa no sábado?
O que muda no calendário juliano?
Zeller ou Doomsday, para programar?
Ferramentas Relacionadas
Calendário Akan (Dia da Semana)
Retorna o nome Akan do dia (sistema da África Ocidental, Gana) baseado no dia da semana. Bebês recebem o nome do dia em que nascem (ex: Kofi = sexta).
Dia da Semana de Data Histórica
Descubra em que dia da semana caiu (ou cairá) qualquer data, do ano 1 ao 9999. Ideal para saber o dia do seu nascimento, datas históricas e eventos futuros.
Calculadora de Dias Úteis
Calcule a quantidade de dias úteis (segunda a sexta) entre duas datas. Exibe total de dias, dias úteis e fins de semana.
Semana e Dia do Ano
Para qualquer data, calcula o número da semana ISO 8601, o dia do ano (1-366) e o trimestre.
Doomsday Rule (Conway)
Calcule mentalmente o dia da semana de qualquer data usando a Doomsday Rule de Conway, com passo a passo do anchor e doomsday do ano.
Conversor Calendário Bengali
Converta uma data do calendário gregoriano para o calendário bengali (Bangabda), usado em Bangladesh e na Índia. Útil para datas culturais, festivais e estudos.