Entendendo o sistema de numeração dos dias da semana
A pergunta qual o setimo dia da semana parece simples até você precisar trabalhar com programação, agendamentos internacionais ou migração de dados entre sistemas que usam convenções diferentes. No Brasil, o sábado é amplamente reconhecido como o sétimo dia, mas isso depende inteiramente de qual padrão você está seguindo. O padrão ISO 8601, que é o que a maioria dos sistemas modernos usa por padrão, define o domingo como o primeiro dia da semana (day = 1) e o sábado como o sétimo (day = 7). Já no calendário norte-americano tradicional, o domingo continua sendo o primeiro dia, mantendo o sábado na sétima posição. O problema real começa quando você entra em cenários como o calendário hebraico ou islâmico, onde a numeração é completamente diferente, ou quando sistemas legados tratam o Monday como dia 0.
Qual o setimo dia da semana na prática
Na prática direta, o sétimo dia da semana no padrão ocidental brasileiro é o sábado. Mas se você está desenvolvendo algo que precisa lidar com múltiplos calendários ou exportar dados para um sistema europeu que segue a convenção de começar a semana na segunda-feira, a coisa muda. Nesse caso, o "sétimo dia" seria o domingo, não o sábado. Eu me deparei com isso há alguns anos quando precisava sincronizar um sistema de turnos de equipe com uma API alemã. Nosso banco de dados usava integers de 1 a 7 para representar os dias, com 1 = domingo e 7 = sábado. A API deles esperava 1 = segunda e 7 = domingo. Meu primeiro chute foi fazer uma conversão manual com um if/else gigantesco, mas depois percebi que o correto era usar a função strftime('%u') do PostgreSQL, que retorna 1 para segunda-feira até 7 para domingo, alinhando diretamente com a ISO 8601. A solução acabou sendo uma view com essa conversão embutida, economizando horas de manutenção.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Por que a confusão existe e como evitá-la
A ambiguidade existe porque nenhum padrão único domina o mundo todo. O NIST americano, a ISO europeia e convenções religiosas distintas coexistem sem um acordro universal de facto. Em programas simples que rodam apenas no Brasil, isso raramente causa problema. Em sistemas que precisam lidar com usuários de múltiplos países, virando um inferno de bugs intermitentes que só aparecem em produção. O que eu recomendo, baseado em dor real: sempre defina explicitamente qual convenção seu sistema está usando. Nunca dependa do comportamento padrão da biblioteca de datas da linguagem, porque o default varia entre Python, JavaScript, Java e C#. Use sempre valores numéricos explícitos (como inteiros baseados na ISO 8601) e documentação clara no código indicando qual padrão está sendo seguido. Isso evita que alguém no time assuma uma convenção diferente da sua sem perceber.
Vantagens e limitações
O maior benefício de adotar o padrão ISO 8601 desde o início é a compatibilidade: bancos de dados relacionais modernos, bibliotecas de e ferramentas de BI já aceitam essa numeração nativamente. Não há custo adicional de implementação. O ponto fraco é que a maioria dos usuários finais e até desenvolvedores júnior não estão familiarizados com a numeração ISO. Se você expor esses números em interfaces do usuário, terá que mapear explicitamente cada valor para o nome do dia em português. E se o sistema precisar suportar culturas onde a semana começa em outro dia — como o Japão, onde convênios comerciais frequentemente tratam o domingo como o primeiro dia —, a conversão volta a ser necessária. Não existe solução perfeita, apenas a menos problemática para o seu caso específico.