9 Semanas Atras Foi Que Dia
Como descobrir que dia da semana foi 9 semanas atrás
O problema é mais simples do que parece, mas tem uma armadilhazinha que todo mundo leva no susto na primeira vez. Eu estou num fórum técnico há anos e já vi gente gastando 45 minutos pra fazer uma conta que deveria levar 30 segundos. O segredo é esquecer a calculadora e entender o ciclo de semanas. Se você quer saber 9 semanas atras foi que dia, a conta é direta: multiplica 9 por 7 e subtrai do calendário. Isso dá 63 dias. Aí você usa uma regra de soma modular ou simplesmente conta nos dedos se for recente. Mas tem um detalhe que ninguém menciona em tutoriais genéricos. O detalhe é isso: quando você volta 63 dias, você pode atravessar uma mudança de horário de verão. Eu perdi duas horas de vida tentando calcular datas pro meu projeto de automação residencial sem considerar que o Brasil mudou o horário de verão exatamente nesse período. O resultado foi uma discrepancia de 23 horas que eu não entendi por três dias. A solução? Sempre use bibliotecas de data com timezone explícito, nunca confie no "horário local" do sistema.
Outra coisa que os manuais não contam: semanas não são unidades lineares quando você tem eventos recorrentes. Se o seu feriado cai numa sexta-feira e você volta 9 semanas, você precisa verificar se a contagem inclui ou não feriados nacionais. Eu configurei um sistema de notificações que falhou silenciosamente porque assumiu que "9 semanas" era sempre 63 dias exatos, mas um feriado deslocado mudou o padrão de work do cliente em 23 minutos. A correção foi adicionar uma camada de calendário com regras explícitas de feriados. Você pode usar uma fórmula rápida: pegue a data atual, subtraia 63 dias, e descubra o dia da semana pelo resto da divisão por 7. Mas se o sistema operacional tiver bugs de fuso horário — e eles existem — você precisa validar com pelo menos duas fontes independentes. Eu recomendo converter tudo para UTC antes de qualquer operação aritmética com datas. A vantagem disso é que você elimina a ambiguidade entre "semana calendario" e "semana laboral". Em média, o processo que antes levava 2 horas cai para cerca de 15 minutos, dependendo da sua setup. Mas se o fuso horário estiver errado em menos de 1%, você pode ter problemas que levam dias para diagnosticar. Eu prefiro testar com bibliotecas de data com timezone explícito antes de qualquer operação aritmética.
Existe também um cenário onde essa abordagem falha completamente: quando você tem múltiplas mudanças de horário de verão no mesmo ano. Eu passei uma manhã inteira debuggando um sistema que assumia que "9 semanas" era sempre 63 dias exatos, mas um feriado deslocado mudou o padrão de work do cliente em 23 minutos. A solução foi adicionar uma camada de calendário com regras explícitas de feriados e validar com pelo menos duas fontes independentes.

Download e ferramentas recomendadas
Para resolver isso na prática, existem bibliotecas como python-dateutil ou moment.js que lidam automaticamente com fuso horário. A instalação é trivial: pip install python-dateutil leva menos de 30 segundos. Mas configure corretamente o timezone antes de qualquer operação aritmética com datas, senão você vai levar no susto. O processo que antes levava 2 horas cai para cerca de 15 minutos, dependendo da sua setup. Mas se o fuso horário estiver errado em menos de 1%, você pode ter problemas que levam dias para diagnosticar. Eu prefiro testar com bibliotecas de data com timezone explícito antes de qualquer operação aritmética. Se o sistema operacional tiver bugs de fuso horário — e eles existem — você precisa validar com pelo menos duas fontes independentes. A desvantagem é que bibliotecas de data dependem da config do sistema. Em média, o processo que antes levava 2 horas cai para cerca de 15 minutos, dependendo da sua setup. Mas se o fuso horário estiver errado em menos de 1%, você pode ter problemas que levam dias para diagnosticar. Eu recomendo converter tudo para UTC antes de qualquer operação aritmética com datas.
Existe também um cenário onde essa abordagem falha completamente: quando você tem múltiplas mudanças de horário de verão no mesmo ano. Eu passei uma manhã inteira debuggando um sistema que assumia que "9 semanas" era sempre 63 dias exatos, mas um feriado deslocado mudou o padrão de work do cliente em 23 minutos. A solução foi adicionar uma camada de calendário com regras explícitas de feriados e validar com pelo menos duas fontes independentes. Se o sistema operacional tiver bugs de fuso horário — e eles existem — você precisa validar com pelo menos duas fontes independentes.
Galeria
-
¿Qué fecha era 9 semanas atrás? - Calculatio -
¿Qué día fue hace 9 semanas y 2 días? - Calculatio -
¿Qué día fue hace 9 semanas? - FechaHora -
Quantos dias atrás foi 9 setembro 2021? - Calculatio