日付に日数を加算・減算するカレンダー計算機
2024年12月28日に5日を足すと2025年1月2日になります。日付と日数を入れ、先へ進むならプラス、さかのぼるならマイナスの数を指定すると、週末も含めた正確な日付が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 日付
- 2024-12-28
- 日数
- 5
- 結果
- 2025-01-02
この計算機は、実在するグレゴリオ暦の日付を、整数の暦日数だけ前後に移動します。厳密な ISO 形式の日付と、正・負・ゼロのいずれかの日数を入力すると、計算後の日付を取得できます。月ごとの日数、うるう日、世紀年の規則、年越しを正しく扱い、端末の時計、タイムゾーン、夏時間には依存しません。
正確な日付と符号付き日数を入力します
開始日は厳密な YYYY-MM-DD 形式で入力してください。年は4桁、月と日はそれぞれ2桁にします。固定幅なので地域による解釈の違いがなく、2026-04-09 は必ず4月9日を表します。
日付は先発グレゴリオ暦で実在しなければなりません。4月31日や、平年の2月29日は無効です。次の欄には整数の日数を指定します。
正の値なら未来へ、負の値なら過去へ移動し、ゼロなら開始日を維持します。これは暦日の計算であり、越えた午前0時を1日として数えます。土曜日、日曜日、祝日も含みますので、除外する場合は営業日用の機能をご利用ください。
対応年は 0001 から 9999 までで、結果が範囲外になる処理は拒否されます。小数、無限値、安全でない整数、未入力も無効です。
月・年の繰り上がりとうるう年の計算方法
最初に、グレゴリオ暦の各月の日数に照らして年、月、日を検証します。2月は通常28日ですが、4で割り切れる年は29日になります。ただし世紀年は400でも割り切れる必要があります。
そのため 2000 と 2024 はうるう年ですが、1900 と 2100 は平年です。検証後、暦日をカレンダー上の正確な位置を表す整数の通算値へ変換します。その値に符号付き日数を加え、新しい通算値を年、月、日へ戻します。
この方式なら2月末、30日までの月、12月末、複数年の境界をどちらの方向にも自然に越えられます。時計を操作せず、JavaScript の Date 値も作成しません。時計ベースの処理では、暦日だけを扱う問題でも実行環境のタイムゾーンや夏時間の変更が影響するおそれがあるためです。
ここではネットワークや現在時刻を使わず、決定的な整数演算だけを行います。
実際の業務で結果を安全に利用します
成功時には、正規化された開始日、適用した符号付き日数、計算後の ISO 日付が返されます。簡潔な出力なので、データベースへの保存、テストでの比較、請求書レコードへの追加、次のワークフローへの受け渡しが容易です。暦日による支払期限、キャンペーン日の移動、更新通知、保持期限、ソフトウェアテストの期待値などに利用できます。
この機能はカレンダー演算であり、時刻演算ではありません。時刻、タイムゾーン、UTC オフセット、曜日規則、祝日カレンダー、月末の営業日慣行は付加しません。1日を加えると、日曜日や祝日であっても必ず次の暦日になります。
元データは事前に検証してください。
活用例
暦日による期限を計算
申請日、通知日、請求日、開始日に契約上の日数を加え、月末や年末を越える期限も正しく求めます。
過去方向の締切日を算出
負の日数を使い、データ保持の基準日、集計期間、通知開始日、過去の比較日を終点から求めます。
決定的なテストデータを作成
端末時計、ロケール、タイムゾーン、夏時間に依存せず、うるう年や境界の期待 ISO 日付を生成します。
よくある質問
日数の加算だけでなく減算もできますか?
はい。 負の整数で過去へ、正の整数で未来へ移動し、ゼロなら同じ日付を維持します。
うるう年は考慮されますか?
はい。 100で割り切れる年は400でも割り切れる場合のみうるう年とする、グレゴリオ暦の規則を適用します。
どの日付形式を使用しますか?
2026-08-06 のような厳密な YYYY-MM-DD 形式をご使用ください。月と日は2桁で、実在する日付に限ります。
週末や祝日は除外されますか?
いいえ。 すべての暦日を数えます。非営業日を除外する必要がある場合は、営業日計算機をご利用ください。
開始日が無効な場合はどうなりますか?
2023-02-29 や 2026-04-31 のような不可能な日付を別の月へ自動移動しません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/add-subtract-days \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2024-12-28","days":5}'const res = await fetch("https://api.kit.forhosting.com/math/add-subtract-days", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2024-12-28",
"days": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/add-subtract-days",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2024-12-28",
"days": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/add-subtract-days", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2024-12-28","days":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2024-12-28","days":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/add-subtract-days", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"date": "2024-12-28",
"days": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.add_subtract_days",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
不可能な日付を暗黙に補正せず明確に拒否するため、予定、請求、データパイプライン、テスト、再現可能な API 自動化に安心して利用できます。
正確な日付と符号付き日数を入力します
この厳密な規則により、ブラウザー、スクリプト、テスト、API 連携のどこでも同じリクエストが同じ結果になり、地域形式の推測や不正データの自動補正は行われません。
月・年の繰り上がりとうるう年の計算方法
同じ JSON 入力からは、場所や時刻に関係なく常に同じ JSON 出力が得られます。
実際の業務で結果を安全に利用します
不可能な開始日は invalid_input となるため、連携処理を停止してレコードを修正できます。ブラウザーでの利用は無料で、成功した API リクエストの料金は $0.002 です。
技術的な質問
API リクエストの料金はいくらですか?
ブラウザーの計算機は無料です。成功した API リクエストには公開基本料金 $0.002 が適用されます。