2つの日付の間の日数
2024年1月1日から1月11日までは10日です。2つの日付を入れると、そのあいだのカレンダー日数と、2つ目の日付が前かどうかを示す符号付きの数が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 開始
- 2024-01-01
- 終了
- 2024-01-11
- 日数
- 10
- 符号付き日数
- 10
- 開始年
- 2,024
- 開始月
- 1
この2つの日付の間の日数を計算するツールは、厳密なYYYY-MM-DD形式の2つのグレゴリオ暦日を受け取り、それらの間を隔てる暦日の整数を返します。代表的な検証例として、2024-01-01から2024-01-11までは10日、うるう年の2024-02-28から2024-03-01までは2日、同一の端点では0日となります。エンジンは決定的なグレゴリオ暦の遡及算術のみを使用します。各日が実際にカレンダー上に存在することを検証し、両方の日付を通し日数に変換し、それらを差し引き、ネットワーク通信、ランダムサンプリング、ホストの時計に頼ることなく絶対距離と符号付きのend-minus-startの差の両方を報告します。
日数の意味と結果の見方
2つの日付の間の暦日の整数を数えることは、営業日数、年月単位の年齢、タイムゾーンを考慮したタイムスタンプの減算とは異なる問いに答えます。それは週末、祝日、夏時間の切り替えをスキップすることなく、真夜中から真夜中までのグレゴリオ暦上の純粋な市民距離を測るものです。開始日と終了日を厳密なYYYY-MM-DD文字列として指定します。
2月29日はうるう年のみ、4月は30日まで、32日という日は決して存在しません。ロケール依存の週の開始、日の長さの浮動小数点近似、ホストのDateオブジェクトへの依存はありません。営業日、日数の減算によるナビゲーション、エポック変換、複数形式の解析が必要な場合はそれぞれの専用ツールをご利用ください。
このページは、検証済みの2つのISO日付の間のグレゴリオ暦上の整数日の距離のみに答えます。
日数間隔の算術が計画立案・請求・ソフトウェアで役立つ場面
運用チームや財務チームが2つの日付の間の日数を数えるのは、ポリシーが30暦日の支払いウィンドウを定義している場合、通知がイベントから固定日数後に届かなければならない場合、あるいは保持期間がライブの時計ではなく2つのスタンプの間の整数日で示されている場合です。
コホートを構築するアナリストは同じ距離を用いて、既知のカレンダー日に始まり終わる観測ウィンドウにラベルを付け、スプレッドシートのシリアル番号を手作業で引き算するときに現れる月末やうるう日でのオフバイワンエラーを回避します。
教育者や標準策定者は、時刻をサイレントに含めてしまう不透明な電卓アプリに頼ることなく、うるう年の2024-02-28から2024-03-01までの距離と平年の同じペアを対比して実演するためにこのツールを使います。このページでの計算はすべてブラウザ内で完結します。
関連するカレンダー操作が必要なときは日数の減算、エポック変換、ISO週ヘルパーと組み合わせ、日付ユーティリティの小さなラボを構築する際は他の無料の決定的なツールと組み合わせてご利用ください。
活用例
支払いと通知のウィンドウ
タイムゾーンのずれなしに、請求日から支払期日まで、またはイベントから必要な通知日までの暦日数を測定します。
うるう年と月末をまたぐ間隔
うるう年のみ2月29日をまたぐ距離を検証し、月や年の境界が正しい整数日数を生むことを確認できます。
よくある質問
日数はどのように定義されますか?
エンジンは検証済みの2つのYYYY-MM-DD日付を遡及グレゴリオ暦の通し日数に変換し、それらを差し引きます。
週末、祝日、時刻は含まれますか?
いいえ。 このツールは純粋なグレゴリオ暦の日数のみを数えます。営業上の非稼働日をスキップすることも、時刻やタイムゾーンを解析することもありません。
2つの日付の順番は関係ありますか?
主な日数はマイナスにならないので関係ありません。もう一つの符号付きの数は向きを保ち、終了日が開始日より前ならマイナスになります。
2月28日から3月1日までは何日ですか?
2024年のようなうるう年なら、あいだに2月29日があるので2日、平年なら1日です。日付はすべて確認され、2月29日はうるう年でだけ受け付けます。
日付のあいだの日数はどんな場面で使いますか?
30日以内の支払い期限、出来事から決まった日数後に届ける通知、2つの日付のあいだの日数で決める保存期間などの確認に使えます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/days-between \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2024-01-01","end":"2024-01-11"}'const res = await fetch("https://api.kit.forhosting.com/date/days-between", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": "2024-01-01",
"end": "2024-01-11"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/days-between",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": "2024-01-01",
"end": "2024-01-11"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/days-between", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":"2024-01-01","end":"2024-01-11"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":"2024-01-01","end":"2024-01-11"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/days-between", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"start": "2024-01-01",
"end": "2024-01-11"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.days_between",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
year_min | 1 |
year_max | 9999 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
計画立案、請求ウィンドウ、宿題にはブラウザで無料にご利用いただき、CI、レポーティングパイプライン、製品機能で再現可能な日数間隔のフィクスチャが必要な場合は、成功したリクエストごとに$0.002のAPIをご利用ください。
整数日の間隔が意味すること、そしてレスポンスの内容
daysフィールドは常に非負であり、signed_daysは終了日が開始日より早い場合に方向を保持するため、順序が時系列である必要はありません。この計算ツールは両方の日が実在するカレンダー日であることを検証します。その上で、正規化された開始・終了文字列、絶対的な整数日の距離であるdays、通し終了日から通し開始日を引いたsigned_days、他のツールへのパイプ渡しを容易にする構成要素フィールドstart_year・start_month・start_day・end_year・end_month・end_day、そして短い式の説明を返します。両方の入力がサポートされる年の範囲内の実在するカレンダー日であれば間隔は完全に決定され、そうでなければinvalid_inputでリクエストは失敗します。拒否されるケースには、startまたはendフィールドの欠落、2024/01/01のような誤った形式、不可能な月、2023-02-29のような存在しない日、1から9999の範囲外の年が含まれます。
startとendの読み取り方法とカウントを再現可能に保つ仕組み
各文字列は4桁の数字、ハイフン、2桁の数字、もう一つのハイフン、2桁の数字に一致しなければなりません。先頭や末尾の空白はトリムされますが、部分的な日付、通日のみの表記、月名、埋め込まれた時刻はここでは展開されません。解析後、各年は1から9999の間、各月は1から12の間、各日はその年のその月の実際の長さの範囲内でなければならず、うるう年は4で割り切れるが400で割り切れない世紀年を除くというグレゴリオ暦の規則に従います。優先される1番目のフィールドはstartですが、from、date1、a、beginといった別名も受け付けるため、スプレッドシート、クエリ文字列、型付きフォームは列名を変えずに同じ契約を再利用できます。優先される2番目のフィールドはendで、同様の理由でto、date2、b、finishといった別名も受け付けます。内部的には、エンジンはよく知られたdays_from_civilマッピングを用いて各市民暦の3項組を遡及グレゴリオ暦の通し日数に変換し、通し終了日から通し開始日を引いてsigned_daysを求め、それの絶対値をdaysとします。これは実行環境間でビット単位まで安定した純粋な整数算術です。同一の日付は0を生み、ペアを逆にするとsigned_daysの符号のみが反転しdaysは変わりません。自動化されたパイプライン内で同一の日数間隔が必要な場合は、このページの無料ブラウザ実行と有料APIを組み合わせてご利用ください。
日数間隔の算術が計画立案・請求・ソフトウェアで役立つ場面
開発者はこの契約をスクリプトから呼び出し、スケジューラー用の決定的なテストベクターを生成したり、請求書やサブスクリプションの期間フィールドを検証したり、ホストのDateオブジェクトによるタイムゾーンのずれのない純粋なカレンダー間隔を要求する製品要件を満たしたりします。API経由では成功した検索1件につき$0.002がかかり、検証に失敗したリクエストは課金されず、レスポンスが返された後は何も保存されません。この無料のインタラクティブな探索と、同一結果を返す有料APIという分割は、KITのtier-Aカタログの他のツールと同様であり、単発のチェックからパイプラインへ、数学的な結果を変えることなく移行できます。
連携の活用例
決定的なテストフィクスチャ
DateやホストのAPIに依存せずに、ユニットテストやプロパティチェック、CIアサーション向けに再現可能な日数間隔の数値を生成できます。
技術的な質問
2つの日付の間の日数を計算するツールの料金はいくらですか?
このページのブラウザ版は無料です。API経由では成功したリクエストごとに$0.002がかかり、無効な入力には課金されません。
うるう年や無効な日付の場合はどうなりますか?
両方の端点で月の長さとうるう日が検証されます。たとえば2024-02-29は受け付けられますが、2023-02-29はinvalid_inputで拒否されます。
終了日が開始日より前でも順序は関係ありますか?
daysは常に非負です。終了日が開始日より早い場合、signed_daysは負になるため、必要なときは時系列の方向を保持できます。