Segundas-feiras no calendário: o que realmente acontece
Um ano comum tem 365 dias e um bissexto tem 366. Como uma semana tem 7 dias, dividir 365 por 7 dá 52 inteiros com resto 1. Já 366 dividido por 7 dá 52 inteiros com resto 2. Isso significa que todo ano tem pelo menos 52 segundas-feiras, e dependendo do dia da semana em que começa, pode ter 53. Não é mais complicado do que isso. A Regra prática é simples: se 1º de janeiro cair numa segunda-feira, aquele ano terá 53 segundas-feiras. Em anos bissextos, a coisa muda um pouco. Se 1º de janeiro cair num domingo, o ano bissexto também terá 53 segundas-feiras, porque os dois dias extras do calendário acabam caindo em domingos e segundas, e a segunda extra aparece no final do ano (31 de dezembro, que seria segunda).
Quantas segundas feiras tem um ano no calendário gregoriano
O calendário gregoriano segue um ciclo de 400 anos. Nesse ciclo, há 146.097 dias exatamente, o que é divisível por 7. Isso significa que a distribuição dos dias da semana se repete de forma previsível. Em média, cada dia da semana aparece 52,1775 vezes por ano. A grande maioria dos anos tem 52 segundas, mas cerca de 15% dos anos têm 53. No ciclo de 400 anos, existem exatamente 58 anos comuns com 53 segundas-feiras (quando 1º de janeiro é segunda) e 28 anos bissextos com 53 segundas-feiras (quando 1º de janeiro é domingo). O total de segundas-feiras em 400 anos é 2.284, o que dá uma média de 5,71 por século.
Como determinar na prática se seu ano terá 52 ou 53
Você não precisa decorar tabela nenhuma. Basta saber que dia da semana cai o 1º de janeiro do ano em questão. Existem fórmulas consagradas para isso. A mais conhecida é a Regra de Zeller, que leva o mês, o dia e o ano e devolve um número de 0 a 6 correspondente ao dia da semana. Outra opção, mais simples de lembrar, é a Regra de Tomohiko Sakamoto, que usa uma tabela de offsets por mês aplicada ao ano. Aqui vai um jeito que eu uso no dia a dia, porque é rápido e não depende de calculadora:
👉 Clique no botão abaixo para saber mais sobre o assunto!
- Para anos após 2000, use a fórmula: dia_da_semana = (1 + 5*(ano%4) + 4*(ano%100) + 6*(ano%400)) % 7, ajustando a partir de um ponto de referência conhecido.
- Se você tem acesso a uma planilha ou script, a função weekday ou strftime resolve em uma linha.
Eu já passei aperto com isso quando estava migrando um sistema legado de relatórios mensais de uma base que usava DATESADD do SQL Server para uma nova camada em Python com pandas. A consulta que contava "segundas-feiras por mês" estava retornando valores errados nos anos bissextos. O problema era que o código original considerava apenas 28 dias por mês e somava semanas, ignorando que fevereiro em ano bissexto tem 29 dias. A correção foi trocar a lógica para usar DateOffset(weeks=1) dentro de um loop que iterava por todos os dias do mês, filtrando onde weekday() == 0. Deu trabalho identificar, mas foi um lembrete útil de que simplificações ingênuas sobre calendários sempre custam caro.
Insights que poucos lembram
O primeiro: não confie na intuição de que "todo ano tem 52 de tudo". A aritmética básica já prova o contrário, e o calendário gregoriano reforça. O segundo: anos bissextos não são automaticamente anos com mais segundas-feiras. Eles são anos com mais dias extras, mas a quantidade de segundas depende exclusivamente do dia da semana inicial. Um ano bissexto começando numa terça terá apenas 52 segundas, assim como um ano comum começando numa segunda terá 53. Outro ponto que muita gente perde de vista: a regra dos 4 anos para bissextos tem exceções. Anos divisíveis por 100 não são bissextos, a menos que também sejam divisíveis por 400. Isso significa que 1900 não foi bissexto, mas 2000 foi. Esse detalhe altera a contagem de segundas-feiras em ciclos longos, mas o efeito é pequeno e só aparece quando você trabalha com períodos de décadas ou séculos.
Limitações e alternativas
Se você precisa de precisão absoluta em sistemas de larga escala, não conte com fórmulas manuais. Use bibliotecas de data built-in, como as do Python, JavaScript, ou as funções de data nativas do banco de dados. Fórmulas manuais são propensas a erro em casos de borda, como anos antes de 1900 no calendário gregoriano ou conversões entre fusos horários. Para relatórios gerenciais que não exigem microprecisão, calcular com uma planilha usando WEEKNUM ou equivalente já é suficiente e economiza tempo de desenvolvimento.