DDayThistle
Spațiu de programare cu AI

Deplasări de zile lucrătoare cu sărbători

Deplasează o dată cu minus 366 până la 366 zile lucrătoare, sărind weekendurile și până la 1000 sărbători.

● ● ●DayThistle●
Fluxuri de lucru · Deplasări de zile lucrătoare cu sărbători ×
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")
✳Deplasări de zile lucrătoare cu sărbători
✓ ModificăriVerifică înainte de aplicare ↗
Ilustrarea spațiului de lucru
Proiect
Testează zero, deplasări inverse și limite calendaristice, respinge date invalide fără a schimba sărbătorile.
Verifică înainte de aplicare
Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
Modele
Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
Fluxuri de lucru

Deplasări de zile lucrătoare cu sărbători

Fluxuri de lucru ↗
Fluxuri de lucru
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")
Spațiu de programare cu AI

Explicitează regulile programării înainte de a modifica codul datelor

Codul de planificare amestecă adesea politica organizațională cu aritmetica obișnuită a calendarului. DayThistle este un spațiu de programare cu IA pentru Windows în care poți separa aceste întrebări când revizuiești proiectul. Începe cu data produsă de aplicație, data așteptată și regulile din spatele așteptării. Cere modelului conectat să inspecteze codul relevant înainte de a sugera o corecție.

De exemplu, poți solicita revizuirea unei funcții auxiliare pentru termene care omite weekendurile și un set furnizat de sărbători. Explică dacă ziua de început se numără, cum se comportă deplasările negative și cine furnizează datele sărbătorilor. Cere o propunere care păstrează aceste decizii atât în apelant, cât și în funcția auxiliară, fără a presupune o definiție universală a zilei lucrătoare.

Verifică modificările propuse folosind cazuri derivate din acele reguli. Include trecerea peste un weekend, o sărbătoare alăturată unui weekend, o deplasare zero și o deplasare înapoi. Rulează testele proiectului și inspectează comportamentul la limită pentru date neacceptate. Un termen aparent corect într-un exemplu nu stabilește că toți apelanții folosesc aceeași politică.

DayThistle se conectează la endpointuri acceptate compatibile cu OpenAI sau Anthropic. Poți alege un model IA fără cenzură oferit de serviciu; instrumentele și contextul disponibile depind în continuare de server. Păstrează politica scrisă în sarcină, astfel încât modelul să ajute implementarea fără a decide tacit cum își programează organizația activitatea.

Întrebări care stau la baza unei modificări a zilelor lucrătoare

Furnizează DayThistle un calendar al sărbătorilor?

Sarcina exemplificată folosește date despre sărbători furnizate de aplicația ta. Identifică sursa și acoperirea așteptată în cerere. Nu presupune că deschiderea spațiului de lucru oferă sărbători regionale actuale sau decide ce sărbători afectează termenele.

Trebuie numărată ziua de început în deplasare?

Precizează explicit regula și include un test în care începutul cade într-o zi lucrătoare. Politici diferite produc răspunsuri diferite. Cere asistentului să păstreze convenția aleasă atât pentru deplasarea înainte, cât și înapoi.

Cum separ datele greșite despre sărbători de un defect al codului?

Păstrează setul exact de sărbători împreună cu testul care eșuează și inspectează conținutul înainte de a modifica calculul. Compară rezultatul cu politica scrisă. O sărbătoare lipsă și o condiție incorectă de omitere necesită corecții diferite.

Ce fac dacă bucla propusă nu are o condiție clară de oprire?

Întreabă cum limitează implementarea deplasările acceptate și cum tratează depășirea intervalului calendaristic. Revizuiește comportamentul înainte de a accepta propunerea. Rulează teste la limită alături de date obișnuite, astfel încât remedierea unui termen să nu introducă un calcul nelimitat.

Descarcă pentru Windows ↗

DayThistle · Actualizat 2026-10-25