DDayThistle
Środowisko programowania z AI

Przesuwanie dni roboczych ze świętami

Przesuń datę o minus 366 do 366 dni roboczych, pomijając weekendy i do 1000 świąt.

● ● ●DayThistle●
Sposoby pracy · Przesuwanie dni roboczych ze świętami ×
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")
✳Przesuwanie dni roboczych ze świętami
✓ ZmianySprawdź przed zastosowaniem ↗
Ilustracja środowiska
Projekt
Sprawdź zero, ruch wstecz i granice kalendarza, odrzuć błędne daty bez zmiany świąt.
Sprawdź przed zastosowaniem
Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
Modele
Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.
Sposoby pracy

Przesuwanie dni roboczych ze świętami

Sposoby pracy ↗
Sposoby pracy
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")
Środowisko programowania z AI

Określ reguły harmonogramu przed edycją kodu dat

Kod harmonogramów często miesza reguły biznesowe ze zwykłą arytmetyką kalendarzową. DayThistle to środowisko programowania z AI dla Windows, w którym rozdzielisz te kwestie podczas przeglądu projektu. Zacznij od daty wyznaczanej przez aplikację, daty oczekiwanej i reguł uzasadniających oczekiwanie. Przed propozycją poprawki poproś podłączony model o analizę odpowiedniego kodu.

Możesz na przykład zlecić przegląd funkcji terminów pomijającej weekendy i przekazany zbiór świąt. Wyjaśnij, czy dzień początkowy jest liczony, jak działają przesunięcia ujemne i kto dostarcza dane świąt. Poproś o propozycję zachowującą te decyzje zarówno w kodzie wywołującym, jak i funkcji pomocniczej, zamiast zakładać jedną uniwersalną definicję dnia roboczego.

Zweryfikuj proponowane zmiany na przypadkach testowych wynikających z tych reguł. Uwzględnij przejście przez weekend, święto sąsiadujące z weekendem, przesunięcie zerowe i ruch wstecz. Uruchom testy projektu i sprawdź zachowanie graniczne dla nieobsługiwanych dat. Poprawnie wyglądający termin w jednym przykładzie nie potwierdza, że wszystkie wywołania używają tej samej polityki.

DayThistle łączy się z obsługiwanymi punktami końcowymi zgodnymi z OpenAI lub punktami Anthropic. Możesz wybrać model AI bez cenzury oferowany przez Twoją usługę; dostępne narzędzia i kontekst nadal zależą od serwera. Zapisz politykę w zadaniu, aby model wspierał implementację bez cichego decydowania o harmonogramach pracy organizacji.

Pytania stojące za zmianą dni roboczych

Czy DayThistle dostarcza kalendarz świąt?

Przykładowe zadanie używa danych świąt dostarczanych przez aplikację. W zleceniu określ ich źródło i oczekiwany zakres. Nie zakładaj, że otwarcie środowiska dostarcza aktualne święta regionalne lub rozstrzyga, które z nich wpływają na terminy.

Czy dzień początkowy powinien wliczać się do przesunięcia?

Określ tę regułę jawnie i dodaj przypadek, w którym początek przypada na dzień roboczy. Różne polityki dają różne odpowiedzi. Poproś asystenta o zachowanie wybranej konwencji zarówno przy ruchu naprzód, jak i wstecz.

Jak odróżnić błędne dane świąt od usterki kodu?

Zachowaj dokładny zbiór świąt z nieudanym przypadkiem testowym i sprawdź jego zawartość przed zmianą obliczeń. Porównaj wynik z zapisaną polityką. Brak wpisu święta i błędny warunek pomijania wymagają różnych poprawek.

Co jeśli proponowana pętla nie ma jasnego warunku zakończenia?

Zapytaj, jak implementacja ogranicza obsługiwane przesunięcia i obsługuje przekroczenie zakresu kalendarza. Sprawdź to zachowanie przed akceptacją. Uruchom testy graniczne obok zwykłych dat, aby poprawka jednego terminu nie wprowadziła nieograniczonego obliczenia.

Pobierz dla Windows ↗

DayThistle · Zaktualizowano 2026-10-25