Por que junho tem 30 dias e o que isso significa na prática
O mês de junho tem 30 dias. Essa é a resposta curta. Mas se você já tentou configurar um sistema financeiro, importar um relatório de ponto ou fazer uma migração de dados entre calendários diferentes, sabe que essa simplicidade esconde um monte de detalhes que costumam dar problema. A pergunta "junho tem quantos dias" parece boba até você precisar programar algo que depende dela. E é aí que as coisas começam a travar.
Como chegamos nos 30 dias de junho
O calendário gregoriano, que é o usado no Brasil desde 1942 (antes usávamos o juliano, introduzido por Júlio César em 46 a.C.), distribui os dias de forma desigual entre os meses. A lógica original vem do calendário romano e foi refinada ao longo dos séculos. Cada mês recebeu um número de dias que, na maioria das vezes, não segue um padrão intuitivo: janeiro (31), fevereiro (28 ou 29), março (31), abril (30), maio (31), junho (30). Não existe uma regra elegante para lembrar por que junho tem 30 e julho 31. É herança histórica. A única coisa que se pode dizer com segurança é que o sistema atual funciona e todo o software do mundo foi construído em cima dele.
junho tem quantos dias — a resposta técnica
Em termos de programação e bancos de dados, a resposta simples é que junho sempre tem 30 dias, sem exceções. Diferente de fevereiro, que varia entre 28 e 29, junho é fixo. O problema aparece quando alguém trata todos os meses como iguais em cálculos de intervalo. Eu já vi um sistema de folha de pagamento calcular automaticamente o número de dias entre datas usando uma média de 30 por mês. Em tese, soa razoável. Na prática, gera inconsistência porque fevereiro corta 2 ou 3 dias nessa conta, e a distribuição real dos dias no ano não é homogênea. O correto é usar a função nativa da linguagem ou biblioteca de datas — DateTime.DaysInMonth(2024, 6) no C#, calendar.monthrange() no Python — que consulta o calendário real, não uma média.
Pegadinhas reais que eu já encontrei
No ano passado, precisei corrigir um reporte de horas extras de um cliente que exportava dados de dois sistemas diferentes: um em português (Brasil, fuso UTC-3) e outro em espanhol (Chile, UTC-3 também, mas com configuração de data diferente). O sistema chileno gerava datas no formato "30/06/2024" e o brasileiro interpretava como "dia/mês/ano". Quando alguém colocava um valor como "31/06/2024" — data inválida, pois junho só tem 30 dias — o sistema quebrou silenciosamente, sem erro, apenas com linhas desaparecidas no relatório final. A correção foi adicionar uma validação explícita antes de processar: verificar se o dia informado é menor ou igual ao retorno de days_in_month para o mês e ano correspondentes. Isso acontece com frequência porque muitos desenvolvedores assumem que o banco de dados ou a linguagem vai rejeitar automaticamente uma data inválida. Nem sempre é o caso. MySQL, por exemplo, com sql_mode padrão, aceita "2024-06-31" e transforma em "2024-07-01". Outras bibliotecas simplesmente falham. Depende da configuração.
O que considerar antes de confiar cegamente em "junho tem 30 dias"
Calendários comerciais e fiscais podem não seguir o calendário civil. Algumas empresas usam anos fiscais que não terminam em dezembro. Nesse caso, o "mês de junho" pode corresponder a um período diferente dependendo da convenção contábil adotada. Sempre confirme a regra do cliente antes de hardcodar qualquer lógica. Conversão entre calendários é outro ponto. Se você trabalha com dados históricos ou internacionais, pode encontrar referências ao calendário juliano, ao calendário lunar ou a sistemas regionais. O Brasil adotou o gregoriano em 1942, mas países como a Grécia só adotaram em 1923, e a Rússia em 1918. Um evento datado de "10 de junho de 1917" na Rússia soviética corresponde a 23 de junho no calendário ocidental. A diferença não é sobre Junho ter mais ou menos dias — é sobre qual calendário está sendo usado.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Fim de semana e feriados também distorcem a percepção. Um relatório que conta "dias úteis em junho" pode variar até 2 dias dependendo do ano, porque os feriados (como o Dia de São João, 24 de junho) e a disposição dos domingos mudam. Não adianta assumir 22 dias úteis por padrão. Calcule com base no ano específico.
Workaround prático
Se você precisa validar se uma data de junho é real em qualquer linguagem, o caminho mais seguro é: 1. Tentar construir o objeto de data com o dia 31 de junho.
2. Verificar se o sistema retornou uma data diferente (indicando que o dia 31 foi ajustado automaticamente).
3. Se sim, a entrada é inválida e deve ser rejeitada ou corrigida com um erro claro.
Exemplo em Python:
from datetime import datetime
try:
datetime(2024, 6, 31)
except ValueError:
print("31 de junho não existe")
Esse padrão funciona na maioria das linguagens modernas. A desvantagem é que exige que você escreva essa validação manualmente — nenhuma biblioteca que eu conheça faz isso como padrão em imports massivos de dados.
Resumo rápido
Junho tem 30 dias, sempre. A complexidade não está na contagem em si, mas em como o sistema que você está usando lida (ou não lida) com datas que extrapolam esse limite. Se você está construindo algo que processa datas de junho, valide antes de calcular. O tempo que você gasta com essa verificação é pequeno comparado ao que leva para rastrear um bug que começou com uma data inválida passando despercebida. E se a dúvida for só prática mesmo — para preencher um formulário, marcar uma reunião, saber quantas semanas cabem no mês — a resposta continua sendo a mesma: 30.