Prazos em dias úteis e dias corridos são uma das áreas onde modelos de linguagem mais escorregam, porque a resposta exige três coisas que o texto gerado costuma tratar de forma solta: saber quais dias são úteis, saber quais são feriados e saber que o dia do começo normalmente não entra na contagem. Um “em até 5 dias úteis a partir de sexta-feira” com um feriado no meio pode virar qualquer data se o modelo não explicitar como contou. Avaliar essa interpretação é montar casos de teste com calendário brasileiro, obrigar o modelo a mostrar a contagem dia a dia e validar o resultado com código, em vez de aceitar o número solto.
Este guia cobre a diferença entre dias úteis e corridos, feriados nacionais e municipais no Brasil, o que dizem o Código de Defesa do Consumidor e prazos contratuais, e como validar tudo em Python com datetime. A regra central é a mesma da avaliação de fuso horário: para contagem de prazo, texto gerado não é prova. O cálculo determinístico é.
Resumo rápido
- Dia útil exclui sábados, domingos e feriados; dia corrido inclui todos os dias do calendário.
- No Brasil, feriados nacionais estão na Lei 662/1949 com a redação da Lei 10.607/2002; feriados municipais variam por cidade.
- A contagem de prazo em dias úteis normalmente exclui o dia do começo e conta a partir do primeiro dia útil seguinte.
- O CDC usa prazos em dias úteis em pontos específicos, como a correção de dados em cadastro (cinco dias úteis).
- O teste exige que o modelo exponha a contagem, não só a data final.
- Valide com Python: defina os feriados e conte os dias úteis em código para gerar o gabarito.
Dias úteis e dias corridos: a diferença que muda tudo
Dia corrido é todo dia do calendário, incluindo fins de semana e feriados. Se um prazo de 10 dias corridos começa em 1º de março, ele termina em 10 de março, independentemente de cair em fim de semana.
Dia útil é o dia em que há expediente: exclui sábados, domingos e feriados. Um prazo de 5 dias úteis que começa em uma sexta-feira não termina na terça seguinte se houver um feriado na segunda. Cada feriado empurra a data final em um dia.
O erro clássico do modelo é tratar “5 dias” como se fosse sempre 5 dias corridos, ou contar sábados por engano. Como a resposta vem em texto fluente, o usuário aceita sem perceber.
Feriados no Brasil: nacionais e municipais
Os feriados nacionais brasileiros estão definidos na Lei 662, de 6 de abril de 1949, cujo texto foi atualizado pela Lei 10.607, de 19 de dezembro de 2002. Segundo essa redação, são feriados nacionais:
| Data | Feriado nacional |
|---|---|
| 1º de janeiro | Confraternização Universal |
| 21 de abril | Tiradentes |
| 1º de maio | Dia do Trabalho |
| 7 de setembro | Independência do Brasil |
| 2 de novembro | Finados |
| 15 de novembro | Proclamação da República |
| 25 de dezembro | Natal |
Atenção: o Carnaval, a Sexta-feira Santa e o Corpus Christi não são feriados nacionais por essa lei. São pontos facultativos federais ou feriados locais, conforme a cidade. Por isso, um modelo que trata Carnaval como feriado nacional comete um erro de premissa que afeta toda a contagem. Confira a lista oficial vigente na fonte antes de usar em produção.
Feriados municipais variam (aniversário da cidade, padroeiro, datas locais). Como não há uma única lista nacional, o gabarito do seu teste precisa incluir os feriados do município relevante para o caso.
Prazos no contrato e no Código de Defesa do Consumidor
O Código de Defesa do Consumidor (Lei 8.078/1990) mistura prazos em dias e em dias úteis conforme o artigo. Um exemplo verificável: no artigo 43, § 3º, sobre correção de dados e cadastros do consumidor, o prazo para o responsável pelo arquivo comunicar a alteração aos destinatários é de cinco dias úteis. Já no artigo 18, § 1º, o prazo para sanar vício de produto é de até trinta dias, sem a qualificação “úteis” no texto, o que muda a contagem.
Essa diferença entre o prazo estar escrito como “dias” ou “dias úteis” é exatamente o tipo de detalhe que o modelo erra quando não é obrigado a consultar o texto. Em avaliação, use as redações reais da lei como fonte, não paráfrases.
Como montar os casos de teste de prazo
Um conjunto de teste bom tem gabarito conhecido. A tabela abaixo cobre os erros mais frequentes.
| Caso | Entrada (prompt) | Resposta esperada (verificada em código) | Erro que revela |
|---|---|---|---|
| Sexta com feriado | 5 dias úteis a partir de uma sexta, com feriado na segunda | Conta a partir da segunda seguinte; feriado empurra em 1 dia | Tratar fins de semana como úteis |
| Excluir dia do começo | 3 dias úteis a partir de terça | Começa a contar na quarta | Incluir o dia do início |
| Útil vs corrido | “10 dias” vs “10 dias úteis” na mesma data | Datas finais diferentes | Tratar tudo como corrido |
| Feriado móvel | Prazo cobrindo Carnaval | Depende de ser feriado local ou facultativo | Premissa errada sobre feriado nacional |
| Só fim de semana | 2 dias úteis a partir de sábado | Conta a partir da segunda | Contar sábado/domingo |
Passo a passo do conjunto de testes
- Defina de 8 a 12 casos com data inicial fixa e prazo fixo.
- Escolha casos que atravessem fim de semana, feriado nacional e um feriado municipal hipotético do caso.
- Calcule a data final com código antes de rodar o modelo. Esse é o gabarito.
- Rode o mesmo prompt nos modelos avaliados.
- Extraia a data final e o número de dias contados da resposta.
- Compare com o gabarito e classifique o tipo de erro.
Como redigir o prompt para o modelo explicitar a contagem
A instrução precisa forçar o modelo a raciocinar a contagem em voz alta e a declarar as premissas. Exemplo de prompt de avaliação:
Calcule o prazo abaixo. Siga estas regras, sem excecao:
1. Declare o tipo de prazo: dias uteis ou dias corridos.
2. Liste, um a um, os dias contados, marcando sabado, domingo e feriados.
3. Diga explicitamente: "o dia do inicio nao entra na contagem".
4. Informe a data final no formato AAAA-MM-DD.
5. Se houver feriado, diga se ele e nacional (Lei 662/1949) ou local.
Data de inicio: sexta-feira, 2026-04-03.
Prazo: 5 dias uteis.
Feriado a considerar: 2026-04-06 (feriado municipal).
Obs.: Carnaval NAO e feriado nacional. Considere apenas feriados
nacionais e o feriado local informado.
Forçar a lista dia a dia é o que expõe o erro de contagem. Quando o modelo só devolve a data final, não há como saber se ele pulou um feriado ou contou o dia do início. Exigir o raciocínio deixa o erro visível, o que é o objetivo da avaliação. Isso conecta com o tema de modelos de raciocínio e com a diferença entre modelos de raciocínio e modelos padrão.
Validar o resultado com código
O gabarito se calcula em Python, contando dias úteis com uma lista explícita de feriados. Exemplo simples e determinístico:
from datetime import date, timedelta
def dias_uteis(inicio: date, n: int, feriados: set) -> date:
"""Conta n dias uteis a partir do 1o dia util APOS 'inicio'."""
d = inicio
contados = 0
while contados < n:
d += timedelta(days=1) # o dia do inicio nao entra
if d.weekday() >= 5: # 5=sabado, 6=domingo
continue
if d in feriados:
continue
contados += 1
return d
feriados = {date(2026, 4, 6)} # feriado municipal do caso
inicio = date(2026, 4, 3) # sexta-feira
print(dias_uteis(inicio, 5, feriados)) # data final esperada
Esse código é a fonte de verdade. A lista de feriados deve conter apenas o que for realmente feriado para o caso (nacionais confirmados na lei e o municipal indicado). Se o modelo devolver data diferente, ele errou. Para datas em fusos diferentes, vale combinar com objetos cientes de fuso do módulo datetime.
Fluxo de validação automática
- Gere a data final esperada com a função acima.
- Extraia a data no formato AAAA-MM-DD da resposta do modelo.
- Compare as duas datas.
- Compare também o número de dias contados, para pegar erro de contagem que por acaso caiu na data certa.
- Agrupe os erros por tipo (fim de semana, feriado, dia do início) e gere a taxa por categoria.
Esse cuidado é o mesmo que você aplica a outras avaliações de confiabilidade, como em como testar agente de IA.
Exemplo: prazo de atendimento em uma loja de Belo Horizonte
Uma loja de médio porte em Belo Horizonte vende por e-commerce e usa um assistente de IA para responder aos clientes sobre prazos de troca e resolução de problemas. A equipe escreve no prompt interno: “resolva em até 5 dias úteis a partir da confirmação”. Em uma sexta-feira antes de um feriado municipal da cidade, o assistente responde com uma data final que, ao ser conferida, caiu um ou dois dias antes do correto, porque contou o sábado ou ignorou o feriado local.
Ao aplicar o protocolo deste guia, a loja passa a exigir que o assistente liste os dias contados, declare se o feriado é nacional ou municipal e informe a data final no formato ISO. O gabarito é calculado em Python com a lista de feriados do caso, incluindo o municipal de Belo Horizonte, e a resposta do assistente é comparada linha a linha. O benefício é ter um teste que mostra exatamente qual regra o modelo violou. Os números de acerto dependem do modelo e da versão, por isso o caminho correto é medir no seu próprio conjunto, e não presumir que o modelo domina calendário brasileiro.
Erros comuns
- Aceitar a data final sem a contagem. Se o modelo não mostra como contou, você não consegue validar. Exija a lista dia a dia.
- Tratar Carnaval e Sexta-feira Santa como feriados nacionais. Pela Lei 662/1949, não são; são pontos facultativos ou feriados locais.
- Incluir o dia do começo na contagem. O padrão em prazos é excluí-lo; deixe isso explícito no prompt.
- Confundir “dias” com “dias úteis”. O CDC e contratos usam as duas formas em artigos diferentes, com efeitos distintos.
- Esquecer feriados municipais. Sem a lista do município, o gabarito fica incompleto.
- Validar comparando texto em vez de datas. Converta para
datee compare objetos, não strings.
Perguntas frequentes
Qual é a diferença entre dia útil e dia corrido?
Dia corrido é todo dia do calendário, incluindo fins de semana e feriados. Dia útil exclui sábados, domingos e feriados. Um prazo em dias úteis avança apenas em dias com expediente.
O dia do início conta no prazo?
Na prática mais comum, não. A contagem em dias úteis exclui o dia do começo e começa no primeiro dia útil seguinte. Como há variações por contrato, o prompt deve declarar a regra para o teste ficar determinístico.
Quais são os feriados nacionais no Brasil?
Segundo a Lei 662/1949 com a redação da Lei 10.607/2002: 1º de janeiro, 21 de abril, 1º de maio, 7 de setembro, 2 de novembro, 15 de novembro e 25 de dezembro. Carnaval e Corpus Christi não constam como feriados nacionais nessa lei.
O CDC usa dias úteis ou dias corridos?
Depende do artigo. No artigo 43, § 3º, o prazo é de cinco dias úteis. No artigo 18, § 1º, o prazo para sanar vício é de até trinta dias, sem a palavra “úteis”. Por isso o texto legal deve ser lido no original, no Planalto.
Como validar o prazo sem depender do modelo?
Calcule a data final com código Python, usando datetime e uma lista explícita de feriados. Essa função vira o gabarito contra o qual a resposta do modelo é comparada.
Posso confiar na lista de feriados que o modelo fornece?
Não. Liste os feriados você mesmo, a partir das leis para os nacionais e do calendário oficial do município para os locais. O modelo só é avaliado contra essa lista, nunca a fonte dela.
Fontes e leitura recomendada
- Lei 662/1949 (feriados nacionais)
- Lei 10.607/2002 (nova redação dos feriados nacionais)
- Código de Defesa do Consumidor (Lei 8.078/1990)
- Python: documentação de
datetime - Python: documentação de
zoneinfo - Anthropic: uso de system prompts
- Google: system instructions na API Gemini
Para completar a avaliação, veja como a coerência cai em contextos longos em janela de contexto em IA e como medir o custo de rodar muitos casos de teste em tokens e custo de API.