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

Зсув календарного місяця з обмеженням дня

Зсуньте дату на цілі календарні місяці й обмежте день останнім днем цільового місяця.

● ● ●MonthAnchor●
Сценарії · Зсув календарного місяця з обмеженням дня ×
from calendar import monthrange
from datetime import date

def add_months(day, delta):
    if type(day) is not date or type(delta) is not int:
        raise ValueError("month.input")
    year, month0 = divmod(day.year * 12 + day.month - 1 + delta, 12)
    if not 1 <= year <= 9999:
        raise ValueError("month.year")
    last = monthrange(year, month0 + 1)[1]
    return date(year, month0 + 1, min(day.day, last))
✳Зсув календарного місяця з обмеженням дня
✓ ЗміниПеревірте перед застосуванням ↗
Ілюстрація робочого середовища
Проєкт
Перевірте 31 січня у високосному й звичайному році та від’ємний зсув, відхиляючи дроби й роки поза діапазоном.
Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Моделі
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Сценарії

Зсув календарного місяця з обмеженням дня

Сценарії ↗
Сценарії
from calendar import monthrange
from datetime import date

def add_months(day, delta):
    if type(day) is not date or type(delta) is not int:
        raise ValueError("month.input")
    year, month0 = divmod(day.year * 12 + day.month - 1 + delta, 12)
    if not 1 <= year <= 9999:
        raise ValueError("month.year")
    last = monthrange(year, month0 + 1)[1]
    return date(year, month0 + 1, min(day.day, last))
Робоче середовище з ШІ для коду

Перетворюйте календарні очікування на явну поведінку програми

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

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

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

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

Перед зміною поведінки операцій із місяцями

Навіщо окремо визначати зміщення за місяцями та за кількістю минулих днів?

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

Що станеться, коли обмежена останнім днем дата зміститься знову?

Це залежить від того, чи пам’ятає застосунок початковий опорний день або використовує останній результат як нові вхідні дані. Явно задайте потрібну послідовність. Тестуйте кілька зміщень, а не припускайте, що один правильний результат доводить правильність повторення.

Чи має ця правка також додавати оброблення часових поясів?

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

Які межові випадки потребують тестових прикладів?

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

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

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