O sistema que determina qual o sétimo dia da semana
A resposta varia conforme a convenção que você adota. No padrão ISO 8601, usado oficialmente pela maioria dos países e por sistemas técnicos, a semana começa na segunda-feira e o sétimo dia é o domingo. Em contrapartida, em tradições como a judaico-cristã e em países como Estados Unidos e Brasil em contextos civis, a semana inicia no domingo e o sétimo dia é o sábado. Essa divergência gera problemas reais quando você desenvolve software ou lida com integrações internacionais. Eu tive que resolver isso num projeto de exportação de dados fiscais para um cliente alemão. A planilha que entregávamos estava marcando sábados como último dia da semana porque o módulo de geração de relatórios usava a library padrão do PHP, que no Brasil considera domingo como primeiro dia. O sistema deles esperava domingo como último. Perdi meio dia testando configurações de fuso horário e timezone antes de perceber que o problema era simplesmente a constante DATE_FIRSTDAY. Mudei para date_default_timezone_set e usei DateTime::format('N') para obter o número ISO do dia da semana, onde 1 é segunda e 7 é domingo. Funcionou.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Qual o sétimo dia da semana nas diferentes convenções
Se você olhar tabelas de referência rápida, vai encontrar duas respostas conflitantes. A convenção religiosa e comercial tradicional coloca o sábado como sétimo dia, herança do relato da criação nos livros judaicos e cristãos, onde Deus descansou no sétimo dia. Já a norma internacional ISO 8601 define o domingo como sétimo dia, simplesmente porque adotou a segunda como início da contagem. Linguagens de programação reflexam isso: JavaScript retorna 0 para domingo e 6 para sábado via getDay(), enquanto Python com datetime.weekday() retorna 0 para segunda e 6 para domingo. O problema prático é que muitos desenvolvedores assumem que todos compartilham a mesma convenção. Eu vi código em produção que usava if dia == 7 para identificar o fim de semana, funcionando perfeitamente em ambiente europeu e quebrando completamente quando o sistema foi implantado no Brasil. A correção não foi mudar a lógica de negócio, mas sim deixar claro nos comentários e na documentação qual padrão estava sendo adotado, além de usar nomes explícitos como "domingo" em vez de números mágicos.
Outra armadilha comum aparece em sistemas que geram boletos, folha de pagamento ou relatórios periódicos. O banco central brasileiro, por exemplo, utiliza o domingo como último dia do ciclo para certos processamentos, enquanto contratos de trabalho podem considerar o sábado como referência. Se você está construindo uma aplicação que precisa interoperar com múltiplas jurisdições, a solução mais segura é sempre referenciar o padrão ISO 8601 internamente e fazer conversões explícitas na camada de apresentação, nunca confiar no comportamento padrão da biblioteca do idioma que estiver usando sem verificar a documentação.