DDayThistle
AI-werkruimte voor code

Werkdagen verschuiven met feestdagen

Verschuif een datum met min 366 tot 366 werkdagen, sla weekenden en maximaal 1000 feestdagen over.

● ● ●DayThistle●
Werkprocessen · Werkdagen verschuiven met feestdagen ×
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")
✳Werkdagen verschuiven met feestdagen
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
Project
Test nul, achteruitgaan en kalendergrenzen, weiger ongeldige datums zonder de feestdagen te wijzigen.
Controleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Modellen
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
Werkprocessen

Werkdagen verschuiven met feestdagen

Werkprocessen ↗
Werkprocessen
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")
AI-werkruimte voor code

Maak planningsregels expliciet voordat u datumcode wijzigt

Planningscode vermengt vaak bedrijfsbeleid met gewone kalenderberekeningen. DayThistle is een Windows-programmeerwerkruimte met AI waarin u die vragen kunt scheiden tijdens de beoordeling van uw project. Begin met de datum die de toepassing produceert, de verwachte datum en de regels achter die verwachting. Laat het verbonden model de relevante code inspecteren voordat het een correctie voorstelt.

U kunt bijvoorbeeld vragen om een beoordeling van een deadlinehulpfunctie die weekenden en een aangeleverde feestdagenverzameling overslaat. Leg uit of de begindag meetelt, hoe negatieve verschuivingen werken en wie de feestdaggegevens aanlevert. Vraag om een voorstel dat die beslissingen in zowel de aanroepende code als de hulpfunctie behoudt, in plaats van één universele definitie van een werkdag te veronderstellen.

Verifieer de voorgestelde wijzigingen met testgevallen die uit die regels voortkomen. Neem een weekendovergang, een feestdag naast een weekend, een nulverschuiving en een achterwaartse verschuiving op. Voer de projecttests uit en inspecteer het grensgedrag voor niet-ondersteunde datums. Een correct ogende deadline in één voorbeeld toont niet aan dat alle aanroepers hetzelfde beleid hanteren.

DayThistle maakt verbinding met ondersteunde OpenAI-compatibele of Anthropic-eindpunten. U kunt een AI-model zonder censuur kiezen dat uw dienst aanbiedt; beschikbare hulpmiddelen en context blijven afhankelijk van de server. Leg het beleid vast in de taak, zodat het model de implementatie ondersteunt zonder stilzwijgend te bepalen hoe uw organisatie werk plant.

Vragen achter een werkdagwijziging

Levert DayThistle een feestdagenkalender?

De voorbeeldtaak gebruikt feestdaggegevens die uw toepassing aanlevert. Benoem hun bron en verwachte dekking in het verzoek. Ga er niet van uit dat het openen van de werkruimte actuele regionale feestdagen levert of bepaalt welke feestdagen uw deadlines beïnvloeden.

Moet de begindag meetellen bij de verschuiving?

Specificeer die regel expliciet en neem een testgeval op waarin de start op een werkdag valt. Verschillende beleidskeuzes leveren verschillende antwoorden. Vraag de assistent de gekozen conventie bij zowel voorwaartse als achterwaartse verplaatsing te behouden.

Hoe onderscheid ik onjuiste feestdaggegevens van een codefout?

Bewaar de exacte feestdagenverzameling bij het falende testgeval en inspecteer de inhoud voordat u de berekening wijzigt. Vergelijk het resultaat met het vastgelegde beleid. Een ontbrekende feestdag en een onjuiste oversla-voorwaarde vereisen verschillende correcties.

Wat als de voorgestelde lus geen duidelijke stopvoorwaarde heeft?

Vraag hoe de implementatie ondersteunde verschuivingen begrenst en kalenderoverloop afhandelt. Beoordeel dat gedrag voordat u haar aanvaardt. Voer grenstests naast gewone datumtests uit, zodat een reparatie voor één deadline geen onbegrensde berekening introduceert.

Download voor Windows ↗

DayThistle · Bijgewerkt 2026-10-25