2つの日時の分差
2024年1月1日の0時から1時30分まで(どちらもUTC)は90分です。+02:00のような時差やZを付けた日時を2つ入力すると、UTCにそろえたうえで、その間の整数の分数と向きが分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 開始
- 2024-01-01T00:00:00Z
- End
- 2024-01-01T01:30:00Z
- 開始(エポック)(秒)
- 1,704,067,200
- 終了(エポック)(秒)
- 1,704,072,600
- 合計秒数
- 5,400
- 符号付きの分数
- 90
この分差計算機は、2つの明示的なISO-8601日時を受け取り、両瞬間をUTCで表したときに何整数分離れているかを返します。典型例として、2024-01-01T00:00:00Zから2024-01-01T01:30:00Zは前方90分、逆対は−90、同一端点は0です。+02:00のようなオフセットは減算前にUTCへ変換されるため、ローカル壁時計とZulu印が黙って混ざることがありません。エンジンは決定的なグレゴリオ暦の民用算術のみを使い、各暦日と時刻成分を検証し、ホストのDateオブジェクトなしで両値をUnixエポック秒へ写し、終了から開始を引き、ゼロ方向へ切り捨てて整数分にします。
符号付き分差の意味と応答に含まれる内容
符号付きの整数分差は、複数単位のカウントダウン、純粋な暦日スパン、年と月での年齢とは別の問いに答えます。両絶対瞬間をUTCエポック秒に落として60で割ったとき、どれだけ離れているかを測ります。開始と終了の日時をISO-8601文字列で指定します。
順序は時系列でなくても構いません。日付のみの値はUTCの真夜中として扱われ、純粋な日の対でも1440分の倍数になります。完全な日時はTまたは空白の区切り、任意の秒、整数秒へ切り捨てられる小数秒、末尾のZ、または+05:30や-0800のような数値オフセットを含み得ます。
現在時計に対するライブカウントダウン、ロケール依存の週開始、分の長さの浮動近似はありません。拒否例にはstartまたはendの欠落、01/01/2024 3pmのような誤形式、存在しない月、2023-02-29のような無効日、0〜23外の時、1〜9999外の年が含まれます。
暦日のみ、日・時・分・秒の内訳、「明日」のような相対句の解析が必要なら専用ツールを使い、このページは検証済みISO日時間の符号付きUTC整数分距離のみに答えます。
活用例
SLAと応答窓
アラートのタイムスタンプと確認スタンプの間の整数分を測り、時計が逆転している場合の負の符号付き値も含めます。
オフセット安全な会議時間
+02:00や-08:00のローカルISO日時を先にUTCへ変換し、ホスト時計に依存しない符号付き分長を報告します。
よくある質問
現在時刻を使いますか?
いいえ。 ご提供の明示的な2日時だけを使います。Date.nowも壁時計依存もありません。
タイムゾーンオフセットはどう扱われますか?
数値オフセットとZは減算前にUTCへ変換されます。日付のみはUTC真夜中として扱います。
終了時刻が開始時刻より前の場合は?
符号なしの分数はそのままで、符号付きの結果はマイナスになり、向きは「後ろ向き」と表示されます。例を逆にして1時30分から0時までにすると、結果は−90です。
時刻なしの日付だけでも使えますか?
使えます。時刻のない日付はUTCの0時として扱うため、日付だけの2つの差は常に1日の長さである1440分のちょうど倍数になります。
1分に満たない秒は四捨五入されますか?
いいえ。秒の小数は切り捨て、結果は整数の分だけを残します。端数は丸めずに切り捨てるため、1分に満たない差は0分になります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/diff-in-minutes \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2024-01-01T00:00:00Z","end":"2024-01-01T01:30:00Z"}'const res = await fetch("https://api.kit.forhosting.com/date/diff-in-minutes", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": "2024-01-01T00:00:00Z",
"end": "2024-01-01T01:30:00Z"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/diff-in-minutes",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": "2024-01-01T00:00:00Z",
"end": "2024-01-01T01:30:00Z"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/diff-in-minutes", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":"2024-01-01T00:00:00Z","end":"2024-01-01T01:30:00Z"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":"2024-01-01T00:00:00Z","end":"2024-01-01T01:30:00Z"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/diff-in-minutes", 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-01T00:00:00Z",
"end": "2024-01-01T01:30:00Z"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.diff_in_minutes",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
符号付き分差の意味と応答に含まれる内容
minutes欄は常に非負で、終了が開始より前でもsigned_minutesが向きを保ちます。計算機はエコーされたstartとend、デバッグ用のstart_epoch_secondsとend_epoch_seconds、生の秒差total_seconds、その差を60で割ってtruncしたsigned_minutes、絶対値のminutes、forward・backward・zeroのdirectionラベル、短い公式の覚え書きを返します。両入力が対応年窓内の有効な絶対時刻ならスパンは完全に決まり、そうでなければinvalid_inputで失敗します。
startとendの読み方と分カウントが再現可能である理由
各文字列は前後空白を除き、厳格なISOパターンと照合されます。4桁年、月、日、任意の時と分、任意の秒と小数、任意のZまたは符号付きオフセットです。解析後、年は1〜9999、月は1〜12、日はその年その月の実日数内で、うるう年は4で割り切れるが400で割り切れない世紀を除くグレゴリオ規則に従います。時は0〜23、分と秒は0〜59です。内部では各民用三要素と現地時刻を先発的グレゴリオ連続日数に変換し、86400を掛け、現地の日中秒を足し、オフセット分×60を引いてすべてをUTCエポック秒にします。第1欄の推奨名はstartですが、from、a、begin、start_dateの別名も受け付け、表計算、クエリ文字列、型付きフォームが列名を変えずに同じ契約を再利用できます。第2欄の推奨名はendで、同様にto、b、finish、end_dateの別名があります。signed_minutesは終了エポックから開始エポックを引いて60で割ったMath.truncで、端数の分を捨てつつ秒差の符号を保ちます。同一瞬間は0、対を逆にするとsigned_minutesとtotal_secondsの符号だけが反転しminutesは変わりません。自動化パイプライン内で同じ分スパンが必要なときは、このページの無料ブラウザ実行と有料APIを組み合わせてください。
分スパン算術が運用・ログ・ソフトウェア試験で果たす役割
運用とサポートのチームは、SLAが30分または60分の応答窓を定義するとき、再試行の間にクールダウンが必要なとき、インシデント時系列が確認と解決のスタンプ間の符号付き隙間を必要とするときに、2つの日時の分を測ります。ログを相関する分析者は、エラー行と直前のデプロイ印の間が何整数分かを同じ距離でラベル付けし、第2スタンプが第1より前でも方向付き報告のために負の値を残します。関連する暦ステップにはdays-between、countdown-between、タイムゾーン補助を、時間ユーティリティの小さな実験室を組むときは他の無料決定的ツールと組み合わせてください。教育者や規格執筆者は、2024-01-01T00:00:00+02:00と2023-12-31T22:00:00Zが同じUTC瞬間で0分差であること、または09:00から10:30の90分会議が壁時計の言語に関わらずsigned_minutes 90になることを示すために使います。このページでは作業はすべてブラウザ内で走り、API経由では成功した照会ごとに$0.002で、検証失敗は課金されず、応答後に何も保存されません。無料の対話探索と同一の有料APIという分割はKITのtier-Aカタログの他項目と一致し、数学的結果を変えずに一度の確認からパイプラインへ移れます。
連携の活用例
決定的なCI fixture
Date.now、タイムゾーン環境変数、うるう秒表なしで、単体試験と性質試験用の再現可能な分差を生成します。
技術的な質問
分差計算機の料金はいくらですか。
このページのブラウザでは無料です。APIでは成功したリクエストが$0.002で、無効入力は課金されません。
符号付き分はどう定義されますか。
両日時をUTCエポック秒に変換し、signed_minutes = trunc((end − start) / 60) とします。minutesは絶対値、total_secondsは生の秒差です。
endがstartより前ならどうなりますか。
minutesは非負のままです。signed_minutesは負でdirectionはbackwardとなり、必要なときに時系列の向きが保たれます。