VR
レビュー担当
Vikram RaoSenior Software Engineer
· B.Tech Computer Science· 14 years building timezone-aware systems· Open-source contributor to date-fns
日付加減算計算について
日付に時間を加算または減算するのは簡単に聞こえますが、月の日数は異なり(28〜31日)、年の長さも異なります(通常年365日、うるう年366日)。つまり「1か月を加算」は必ずしも「30日を加算」とは限りません。そうすると月末の日付が不正確にずれてしまいます。
この計算機は正しい暦計算を使用します。月を加算する際は、対象月の同じ日に移動し、必要に応じて最終有効日にクランプします。例えば、1月31日 + 1か月 = 2月28日(3月2日ではありません)。年を加算する際は月と日を保持し、うるう年でない対象年では2月29日を2月28日にクランプします。
月末のエッジケースの説明
| 操作 | 結果 | 理由 |
|---|---|---|
| 1月31日 + 1か月 | 2月28日 | 2月は28日間。結果は最終日にクランプ |
| 1月31日 + 1か月(うるう年) | 2月29日 | うるう年の2月は29日間 |
| 3月31日 − 1か月 | 2月28日 | 2月に31日はなく、28日にクランプ |
| 2月29日 + 1年 | 2月28日 | 翌年がうるう年でない可能性がある |
| 1月31日 + 30日 | 3月2日 | 日数計算は正確でクランプなし |
一般的な使用例
- ✓支払期日 — 30日間の請求書の支払期日や、12か月のサブスクリプションが自動更新される日を計算します。
- ✓契約・通知期間 — 90日間の通知期間、2年間のリース、3か月の試用期間の正確な終了日を決定します。
- ✓有効期限 — 既知の日付に発行された製品、処方箋、または専門資格の有効期限を確認します。
- ✓定期イベントのスケジューリング — 四半期レビュー、年次更新、月次チェックインを、日付を週、月、年単位で先に進めて計画します。
- ✓建設・プロジェクト計画 — プロジェクト開始日に建設フェーズの期間を加算して、マイルストーンと完了日を計算します。