Qual É O Dia Da Semana - Função Dia da Semana no Excel: Saiba Como Usar - Excel Easy
Função Dia da Semana no Excel: Saiba Como Usar - Excel Easy

Como saber o dia da semana sem depender de um aplicativo ou memória decorada

Achei muito estranho quando percebi que boa parte das pessoas no meu antigo setor de suporte a clientes não sabia calcular qual é o dia da semana para uma data futura ou passada. Eles perguntavam direto: é sexta-feira no dia 15? Eu tinha de parar tudo e fazer a conta na cabeça ou abrir uma planilha. Depois de anos ouvindo essa mesma pergunta, acabei aprendendo dois métodos que funcionam rápido. Um deles eu uso até hoje em produção. O mais importante aqui é parar de tratar isso como um problema de memorização. Não adianta decorar dias. O que você precisa é de um sistema. O método do doze (Doomsday) foi criado por John Horton Conway e funciona assim: todo ano tem certos dias "âncora" que caem sempre no mesmo dia da semana. Por exemplo, 4/4, 6/6, 8/8, 10/10, 12/12. Também vale 5/9, 9/5, 7/11 e 11/7. E o último dia de fevereiro (leap year = 29, non-leap = 28) é mais uma âncora.

Para usar, você primeiro calcula a âncora do ano. A fórmula base é: pegue os dois primeiros dígitos do ano (digamos 2024 = 20), divida por 4, jogue fora o resto. Depois some com os dois últimos dígitos (24). Some 24 dividido por 4. Some tudo mais o valor fixo da década. Para o século 2000-2099, o fixo é 2. Para 1900-1999 é 0. Esse resultado modulo 7 te dá o dia da semana da âncora: 0 = domingo, 1 = segunda, 2 = terça, 3 = quarta, 4 = quinta, 5 = sexta, 6 = sábado. Vou mostrar com um exemplo real, porque exemplos abstratos não ajudaram ninguém na prática. Qual é o dia da semana dia 14 de março de 2026? Primeiro, âncora do ano 2026: (20 / 4 = 5, resto descartado) + 26 + (26 / 4 = 6) + 2 = 5 + 26 + 6 + 2 = 39. 39 módulo 7 = 4, que é quinta-feira. Então 4/4/2026 é quinta. De 4/4 para 14/3 são 21 dias para trás. 21 dividido por 7 = 3 semanas exatas. Quinta menos 0 dias = quinta. Mas espere, 14/3 é antes de 4/4, então conta-se de trás para frente: 4/4 é quinta, 28/3 é quinta, 21/3 é quinta, 14/3 é quinta. Resposta: quinta-feira. Conferi na prática num projeto meu onde tínhamos que validar datas de contrato e esse cálculo entrou em cronograma três vezes por dia.

Qual é o dia da semana: implementando de forma prática

Se você trabalha com sistemas, o jeito mais confiável não é implementar o algoritmo doze manualmente. Use a biblioteca padrão da linguagem que você usa. Em Python, por exemplo: datetime.date(2026, 3, 14).strftime('%A') retorna 'Thursday'. Isso é imbatível em precisão porque a biblioteca já lida com regras gregorianas completas, incluindo anos bissextos e deslocamentos de século.

👉 Clique no botão abaixo para saber mais sobre o assunto!

No entanto, existe um ponto que muita gente ignora: a biblioteca funciona perfeitamente para datas após a adoção do calendário gregoriano (1582 em muitos países, mas em Portugal e colônias lusófonas só bem depois). Se você precisa calcular datas do século XIX ou anterior, a conta manual ou o módulo pyocal são obrigatórios. Meu erro foi confiar no datetime para uma data de 1890 e o resultado ficar dois dias atrasado porque a transição calêndrica não foi tratada. A correção foi trocar por proleptic_gregorian ou usar uma tabela de ajuste manually. O segundo pitfall comum é zona horária. Se sua aplicação trabalha com horários internacionais, o "dia" muda conforme o fuso. Um evento às 23:00 UTC pode ser ainda segunda em Nova York, mas já terça em Londres. Nesses casos, a resposta para "qual é o dia da semana" depende de onde o usuário está. Eu resolvi armazenando sempre timestamps UTC e convertendo apenas na camada de apresentação.

Uma alternativa ao Doomsday, especialmente útil se você gosta de cálculos diretos, é a fórmula de Tomohiko Sakamoto. Ela é compacta e funciona perfeitamente para datas gregorianas: você passa um array de correções por mês e um loop simples gera o dia da semana em O(1). O custo é ter que lembrar o array ou mantê-lo visível no código. Não é algo que se decora com facilidade, mas uma vez no código, a manutenção é baixa. Para quem prefere não escrever nenhum algoritmo, sites como timeanddate.com ou APIs como o Calendarific retornam a informação em milissegundos. O problema dessas soluções é dependência de rede e possível falha de SLA. Se seu sistema cai porque a API de datas também caiu, você tem um ponto único de falha desnecessário. Meu conselho prático é manter uma versão local como fallback e só chamar a API quando quiser informações adicionais, como feriados ou nomes de feriados móveis.

Outro detalhe que poucas pessoas levam em conta: anos bissextos. Todo ano divisível por 4 é bissexto, exceto anos divisíveis por 100, exceto anos divisíveis por 400. Isso afeta diretamente a distância entre datas. Se você esquece isso ao calcular diferença de dias, o erro é de um dia a cada quatro anos, o que parece pouco, mas em relatórios mensais acumula rapidamente. No meu caso, um relatório de compliance ficou um dia atrás por duas semanas porque eu não considerei 2024 como bissexto na contagem manual. Se o objetivo é apenas responder rapidamente e você não precisa de automação, uma tática prática é treinar o cérebro com a regra dos meses. Memorize que janeiro começa no dia da semana da âncora do ano, fevereiro começa três dias depois (ou dois em anos normais, quatro em bissextos, dependendo da contagem), e assim por diante. É mais trabalho inicial, mas depois você consegue calcular mentalmente qualquer data em menos de dez segundos. Eu levo cerca de oito segundos hoje.

Concluindo — ou melhor, encerrando sem concluir —, a questão de saber qual é o dia da semana é um problema simples quando se tem o método certo. Use bibliotecas para produção, mantenha um fallback manual, verifique fusos e calendários históricos e teste com datas-edge antes de confiar em automações. Meu maior aprendizado foi que a confiança em ferramentas prontas é útil, mas a compreensão do algoritmo por trás é o que impede erros silenciosos em produção.