MMonthAnchor
AIコーディングワークスペース

日を調整する月単位の移動

日付を整数月だけ移動し、日を移動先の月末に収めます。

● ● ●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))
✳日を調整する月単位の移動
✓ 変更内容適用前に確認 ↗
ワークスペースのイメージ
プロジェクト
うるう年と平年の1月31日および負の移動を試し、分数の移動量と範囲外の年を拒否してください。
適用前に確認
実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。
モデル
OpenAI互換またはAnthropicのエンドポイントを、ベース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))
AIコーディングワークスペース

暦に関する期待を明示的なソフトウェアの動作にする

日付の変更では、ユーティリティ関数の中に製品としての判断が隠れていることがあります。MonthAnchorは実装を見ながらその判断を検討するWindows用AIコーディング環境です。プロジェクトを開き、接続したモデルに編集を求める前に、期待する暦上の結果を説明します。日付ヘルパーだけでなく、現行動作に依存する呼び出し元も含めてください。

具体例は、翌月に同じ日が存在しない場合の、繰り返しリマインダーの日付の月送りです。現在の規則をアシスタントに調べさせ、月末に収めるか別の方針に従うかを決めてから変更案を求めます。このリマインダーは開発上の想定例であり、提供されるスケジュールサービスではありません。

操作を繰り返す場合も提案をレビューします。一度月末に収めると、さらに一月加えた際の結果に影響するため、元の基準日を別の場所に保持する必要があるか定めます。月末、うるう年、対応する年の範囲についてプロジェクトのテストを実行します。編集を採用する前に、ヘルパーの直接の戻り値と利用者に表示される日付の両方を確認してください。

MonthAnchorは対応するOpenAI互換またはAnthropicのエンドポイントに接続します。設定したサービスで提供される場合、拒否抑制を除去したAIモデルが支援できます。コンテキストの上限とツール対応はその構成に依存します。モデルは暦のコードを提案できますが、動作が正しいかを決めるのは利用者の要件です。

月単位の動作を変える前に

月の移動と経過日数を別々に指定するのはなぜですか?

両者は異なる要件に応えます。暦の日付に基づくリマインダーは、一定の期間に従うとは限りません。アプリケーションが約束する規則を伝え、日数の少ない月でも実装案が規則を維持するか確認してください。

月末に収めた日付をさらに動かすとどうなりますか?

元の基準日を記憶しているか、前回の結果を次の入力に使うかによります。意図する連続結果を明示してください。一回の結果が正しければ繰り返し動作も正しいと考えず、複数回の移動をテストします。

この修正でタイムゾーン処理も追加すべきですか?

対象要件に時刻やタイムゾーン変換が含まれる場合だけです。日付のみのヘルパーは、意図的に仕様を絞っている可能性があります。別種の暦の問題へ修正範囲を広げる前に、どの呼び出し元が追加動作を必要とするか尋ねてください。

どの境界にテストデータを用意すべきですか?

移動先の日数が少ない月、うるう年への移行、負方向の移動、対応する年の限界を含めます。アプリケーションの方針に基づいて期待結果を書き、アシスタントの例だけに頼らずプロジェクトで実行してください。

Windows版をダウンロード ↗

MonthAnchor · 更新日 2026-10-25