DDayThistle
Ambiente de programação com IA

Deslocamento de dias úteis com feriados

Desloque uma data de menos 366 a 366 dias úteis, pulando fins de semana e até 1000 feriados.

● ● ●DayThistle●
Fluxos de trabalho · Deslocamento de dias úteis com feriados ×
from datetime import date, timedelta

def working_day_shift(start, days, holidays):
    if type(start) is not date or type(days) is not int or not -366 <= days <= 366:
        raise ValueError("days.input")
    if type(holidays) is not set or len(holidays) > 1000 or any(type(d) is not date for d in holidays):
        raise ValueError("days.holidays")
    remaining, step = abs(days), 1 if days >= 0 else -1
    for _ in range(7*(remaining+len(holidays))+7):
        if remaining == 0:
            return start
        try:
            start += timedelta(days=step)
        except OverflowError as error:
            raise ValueError("days.range") from error
        if start.weekday() < 5 and start not in holidays:
            remaining -= 1
    raise RuntimeError("days.steps")
✳Deslocamento de dias úteis com feriados
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
Projeto
Teste zero, movimento inverso e limites do calendário, rejeitando datas inválidas sem alterar os feriados.
Revise antes de aplicar
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
Modelos
Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
Fluxos de trabalho

Deslocamento de dias úteis com feriados

Fluxos de trabalho ↗
Fluxos de trabalho
from datetime import date, timedelta

def working_day_shift(start, days, holidays):
    if type(start) is not date or type(days) is not int or not -366 <= days <= 366:
        raise ValueError("days.input")
    if type(holidays) is not set or len(holidays) > 1000 or any(type(d) is not date for d in holidays):
        raise ValueError("days.holidays")
    remaining, step = abs(days), 1 if days >= 0 else -1
    for _ in range(7*(remaining+len(holidays))+7):
        if remaining == 0:
            return start
        try:
            start += timedelta(days=step)
        except OverflowError as error:
            raise ValueError("days.range") from error
        if start.weekday() < 5 and start not in holidays:
            remaining -= 1
    raise RuntimeError("days.steps")
Ambiente de programação com IA

Explicite as regras de agendamento antes de editar o código de datas

O código de agendamento muitas vezes mistura políticas de negócio com aritmética comum de calendário. O DayThistle é um ambiente de programação com IA para Windows onde você pode separar essas questões ao revisar o projeto. Comece pela data produzida pela aplicação, pela data esperada e pelas regras que fundamentam essa expectativa. Peça ao modelo conectado que examine o código pertinente antes de sugerir uma correção.

Por exemplo, você pode solicitar a revisão de uma função auxiliar de prazo que ignora fins de semana e um conjunto fornecido de feriados. Explique se o dia inicial conta, como os deslocamentos negativos se comportam e quem fornece os dados de feriados. Peça uma proposta que preserve essas decisões tanto no chamador quanto na função, em vez de presumir uma definição universal de dia útil.

Verifique as mudanças propostas usando casos derivados dessas regras. Inclua a passagem por um fim de semana, um feriado adjacente a um fim de semana, um deslocamento zero e um movimento para trás. Execute os testes do projeto e examine o comportamento nos limites para datas não suportadas. Um prazo aparentemente correto em um exemplo não estabelece que todos os chamadores usem a mesma política.

O DayThistle se conecta a endpoints compatíveis com OpenAI ou endpoints Anthropic suportados. Você pode escolher um modelo de IA sem censura oferecido pelo serviço; as ferramentas disponíveis e o contexto continuam dependendo do servidor. Mantenha a política escrita na tarefa para que o modelo auxilie a implementação sem decidir silenciosamente como sua organização agenda o trabalho.

Perguntas por trás de uma alteração em dias úteis

O DayThistle fornece um calendário de feriados?

A tarefa de exemplo usa dados de feriados fornecidos pela sua aplicação. Identifique a fonte e a cobertura esperada na solicitação. Não presuma que abrir o ambiente forneça feriados regionais atualizados ou decida quais datas comemorativas afetam seus prazos.

O dia inicial deve contar no deslocamento?

Especifique essa regra explicitamente e inclua um caso em que o início caia em um dia útil. Políticas diferentes produzem respostas diferentes. Peça ao assistente que preserve a convenção escolhida tanto no movimento para frente quanto para trás.

Como separar dados de feriados incorretos de um defeito de código?

Mantenha o conjunto exato de feriados junto do caso com falha e examine seu conteúdo antes de alterar o cálculo. Compare o resultado com a política escrita. Um feriado ausente e uma condição incorreta para ignorar dias exigem correções diferentes.

E se o laço proposto não tiver uma condição clara de parada?

Pergunte como a implementação limita os deslocamentos suportados e trata o estouro do intervalo do calendário. Revise esse comportamento antes de aceitá-la. Execute testes de limite junto das datas comuns para que uma correção de prazo não introduza um cálculo sem limite.

Baixar para Windows ↗

DayThistle · Atualizado 2026-10-25