Martes Dia Da Semana - Martes Dia Da Semana - BRAINCP
Martes Dia Da Semana - BRAINCP

A etimologia que ninguém pergunta mas todo mundo deveria saber

Martes vem do latim Martis dies, o dia de Marte. A correspondência exata no português é terça-feira, que nada mais é do que o terceiro dia da semana. Simples assim. A confusão entre os dois termos aparece todo dia em fóruns e listas de discussão porque as pessoas copiam planilhas da internet sem pensar no que estão colando. O resultado é um trabalho manual duplo pra corrigir depois. Aqui vai algo que a maioria das fontes ignorância: "martes dia da semana" é uma mistura linguística que funciona como search query, mas é tecnicamente um espanhol com um sufixo português. Se você estiver processando dados multilíngues, não assuma que qualquer script que funcione com "martes" automaticamente reconhece "terça". Eles são a mesma coisa no calendário, não no código.

O problema que eu encontrei com fuso horário e nomes de dias

Em 2019 eu processei um dataset de transações financeiras onde os registros vinham em UTC, mas os nomes dos dias estavam em espanhol latino-americano. Quando eu convertia martes para o calendário brasileiro, todas as datas caíam um dia adiantado. A causa era que o servidor estava ajustando o fuso automaticamente pra Brasília enquanto a string "martes" permanecia atrelada ao horário original do México. A correção foi forçar a parsing com fuso explícito antes de qualquer conversão, usando timezone America/Mexico_City explicitamente no parser. Isso economizou cerca de 4 horas de debugging manual em cima de um problema que, se identificado cedo, levaria 10 minutos pra resolver. O que ninguém te conta sobre usar nomes de dias em processamento de dados é que a ordenação lexical não corresponde à ordem semanal. Se você fizer sort() numa lista de dias em português ou espanhol, domingo vai para o final, segunda não necessariamente aparece primeiro, e sua lógica de agrupamento por semana quebra silenciosamente. A solução mais segura é mapear cada nome para um número de 0 a 6 antes de qualquer operação de ordenação ou agrupamento.

Como fazer isso sem dor de cabeça

Vou dar um exemplo prático. Se você tem um arquivo CSV com datas em formato de texto e quer converter para número do dia da semana em Python: Dicionário de mapeamento fixo funciona bem para datasets pequenos. Crie um mapa entre os nomes e os números, use o parsing com formato de data reconhecido, e depois aplique o dicionário. Para datasets grandes acima de 100 mil linhas, use pandas com o método dt.day_name() especificando o locale correto, que já resolve internacionalização sem precisar de mapa manual.

👉 Clique no botão abaixo para saber mais sobre o assunto!

O ponto crítico que todo mundo erra: usar weekday() vs isoweekday(). A primeira começa em zero (segunda = 0), a segunda começa em um (segunda = 1). Se seu sistema externo espera isoweekday e você manda weekday, todos os dias ficam deslocados por uma posição. Isso já causou erros de reconciliação financeira que levei dois dias inteiros pra rastrear porque o relatório parecia visualmente correto.

Alternativas quando o formato falha

Se os nomes dos dias vêm formatados de formas aleatórias no seu source — abreviações, maiúsculas inconsistentes, espaços extras — o ideal é normalizar tudo antes de mapear. Strip de espaços, lowercase, e remoção de pontos em abreviações como "mar." ou "ter.". Sem isso, seu dicionário vai falhar em aproximadamente 15 a 30% dos registros em dados do mundo real, dependendo da origem. Para quem trabalha com planilhas Excel ou Google Sheets, use a função DIA.DA.SEMANA ou WEEKDAY() com o tipo 2 para segundas começarem em 1. Isso alinha com o padrão ISO 8601 e evita a ambiguidade entre as convenções americanas e europeias de numeração de dias.

O básico é isso. Se o seu caso envolver mais de três línguas no mesmo dataset ou fusos horários que mudam durante o ano por causa de horário de verão, aí sim a complexidade sobe e vale a pena considerar bibliotecas especializadas como dateutil ou Arrow em vez de depender de strings manualmente.