Baixe o aplicativo
Escolha uma pasta e peça ao assistente que leia os arquivos relevantes antes de editá-los. Defina o objetivo e os limites da tarefa.
Desloque uma data de menos 366 a 366 dias úteis, pulando fins de semana e até 1000 feriados. Teste zero, movimento inverso e limites do calendário, rejeitando datas inválidas sem alterar os feriados.
Escolha uma pasta e peça ao assistente que leia os arquivos relevantes antes de editá-los. Defina o objetivo e os limites da tarefa.
Escolha um endpoint compatível. As ferramentas disponíveis e a qualidade das respostas dependem do modelo e do servidor configurados.
Confira as alterações e a saída dos comandos. Execute as verificações do projeto antes de aceitar o resultado; código gerado não vem automaticamente testado.
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
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")Revise antes de aplicar. Confira as alterações e a saída dos comandos. Execute as verificações do projeto antes de aceitar o resultado; código gerado não vem automaticamente testado.