DDayThistle
Робоче середовище з ШІ для коду

Зсув робочих днів з урахуванням свят

Зсуньте дату на кількість робочих днів від мінус 366 до 366, пропускаючи вихідні та до 1000 свят.

● ● ●DayThistle●
Сценарії · Зсув робочих днів з урахуванням свят ×
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")
✳Зсув робочих днів з урахуванням свят
✓ ЗміниПеревірте перед застосуванням ↗
Ілюстрація робочого середовища
Проєкт
Перевірте нуль, зворотний рух і межі календаря, відхиляйте хибні дати без зміни свят.
Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Моделі
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Сценарії

Зсув робочих днів з урахуванням свят

Сценарії ↗
Сценарії
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")
Робоче середовище з ШІ для коду

Зробіть правила планування явними перед редагуванням коду дат

Код планування часто змішує бізнес-правила зі звичайною календарною арифметикою. DayThistle — робоче середовище програмування з ШІ у Windows, де ці питання можна відокремити під час перевірки проєкту. Почніть із дати, яку видає застосунок, очікуваної дати та правил, що стоять за цим очікуванням. Попросіть підключену модель перевірити відповідний код перед пропозицією виправлення.

Наприклад, можна попросити перевірити допоміжну функцію строків, яка пропускає вихідні й наданий набір свят. Поясніть, чи враховується початковий день, як поводяться від’ємні зсуви та хто надає дані свят. Попросіть пропозицію, що зберігає ці рішення і в коді виклику, і в допоміжній функції, замість припущення про єдине універсальне визначення робочого дня.

Перевірте запропоновані зміни прикладами, заснованими на цих правилах. Додайте перехід через вихідні, свято поряд із вихідними, нульовий зсув і рух назад. Запустіть тести проєкту й перевірте граничну поведінку для непідтримуваних дат. Правдоподібний строк в одному прикладі не підтверджує, що весь код виклику використовує ту саму політику.

DayThistle підключається до підтримуваних сумісних з OpenAI або Anthropic кінцевих точок. Можна вибрати модель ШІ без цензури, яку пропонує сервіс; доступні інструменти й контекст залежать від сервера. Тримайте політику записаною в завданні, щоб модель допомагала реалізації, не вирішуючи непомітно, як ваша організація планує роботу.

Питання щодо зміни робочих днів

Чи надає DayThistle календар свят?

Приклад завдання використовує дані свят, надані застосунком. Визначте їхнє джерело й очікуване охоплення в запиті. Не припускайте, що відкриття середовища надає актуальні регіональні свята або вирішує, які святкові дні впливають на строки.

Чи має початковий день враховуватися у зсуві?

Зазначте це правило явно й додайте приклад, де початок припадає на робочий день. Різні політики дають різні відповіді. Попросіть асистента зберегти вибрану домовленість і під час руху вперед, і назад.

Як відрізнити неправильні дані свят від дефекту коду?

Збережіть точний набір свят разом із невдалим тестом і перевірте його вміст перед зміною обчислення. Порівняйте результат із записаною політикою. Відсутнє свято й неправильна умова пропуску потребують різних виправлень.

Що робити, якщо запропонований цикл не має чіткої умови зупинки?

Запитайте, як реалізація обмежує підтримувані зсуви й обробляє вихід за межі календаря. Перевірте цю поведінку перед прийняттям. Запустіть граничні тести поряд зі звичайними датами, щоб виправлення одного строку не створило необмеженого обчислення.

Завантажити для Windows ↗

DayThistle · Оновлено 2026-10-25