開始と終了の時刻を24時間表記で入力してください。日付をまたぐときは開始日・終了日も入力します(同じ日の中の計算なら日付は空欄のままでOKです)。
このページでできること
- 「8時30分から17時30分まで」のような2つの時刻の間の経過時間が、「9時間」のような時間・分・秒の形でその場でわかります
- 開始日・終了日を入れると、「7月10日22時から7月12日6時30分まで」のような日付をまたぐ経過時間も「1日 8時間 30分」の形で計算できます(うるう年にも対応)
- 「32.5時間」のような総時間(小数の時間)・総分・総秒への換算も同時に表示します
- 日付が空欄のまま終了時刻が開始時刻より早いときは、開始を前日とみなして計算します(夜をまたぐ時間差もOK)
- 式のやさしい解説・Excel/Googleスプレッドシート/Python用のコピペ数式・計算ドリル(演習問題)もこのページにまとまっています
この計算は何の役に立つ?
22時00分に出発して翌朝6時30分に着く夜行バスの乗車時間は、日をまたいでいても \(23400 - 79200 + 86400 = 30600\) 秒 = 8時間30分と計算できます。
所要時間がわかると、車内で眠れる時間の見当や、到着後の予定の立てやすさがまるで違います。時刻表に所要時間が書かれていないローカル線や乗り継ぎでも、発着時刻さえわかれば自分で計算できます。
23時30分に寝て朝6時15分に起きたら、睡眠時間は6時間45分。夜をまたぐので、開始を前日とみなす計算(86400秒を足す)がそのまま使えます。
睡眠時間は健康管理の基本の記録です。毎日の就寝・起床の時刻をメモしておけば、この引き算で「今週は平均で何時間眠れたか」を自分で集計できます。
9時00分にスタートして13時57分にゴールした市民マラソンの記録は4時間57分です。ストップウォッチを忘れても、スタートとゴールの時刻がわかれば経過時間は引き算で出せます。
陸上・水泳・自転車などの記録測定は、まさに「2つの時刻の差」の計算そのものです。分・秒の60進法のくり下がりを正しく扱えることが、記録を正確に比べる土台になります。
19時15分から21時45分まで勉強したら、その日の勉強時間は2時間30分です。開始と終了の時刻をメモしておけば、あとからこの引き算で毎日の積み上げを集計できます。
資格試験の勉強記録や在宅ワークの作業ログなど、「何時から何時まで」を「何時間やったか」に直す場面は毎日のようにあります。
「7月10日の18時から、7月12日の朝9時の締切まであと何時間?」——日数の差2日を使って \(86400 \times 2 + 32400 - 64800 = 140400\) 秒 = 39時間(1日と15時間)と計算できます。
残り時間を「時間」の単位でつかむと、「まだ2日ある」という感覚よりも作業計画がずっと現実的になります。ロケットの打ち上げや試験までのカウントダウンも、この日付をまたぐ時間差の計算です。
式
用語・記号の解説
記号
| \(h\)・\(m\)・\(s\) | エイチ、エム、エス | 時刻の「時」(\(h\))・「分」(\(m\))・「秒」(\(s\))。24時間表記で使います(例:午後5時30分なら \(h = 17\)、\(m = 30\)、\(s = 0\))。英語の hour・minute・second の頭文字です。 |
| \(T\) | ティー | 時刻を「深夜0時から数えた秒」に直した値。\(T = 3600h + 60m + s\) で求めます。(例:17時30分00秒 → 63000秒) |
| \(T_1\)・\(T_2\) | ティー・いち、ティー・に | 開始時刻を秒に直した値(\(T_1\))と、終了時刻を秒に直した値(\(T_2\))です。(例:8時30分00秒 → \(T_1 = 30600\)、17時30分00秒 → \(T_2 = 63000\)) |
| \(h_1, m_1\)・\(h_2, m_2\) | エイチ・いち、エム・いち、エイチ・に、エム・に | 筆算式で使う、開始時刻の時と分(添え字1)・終了時刻の時と分(添え字2)です。 |
| \(D\) | ディー | 経過時間(開始から終了までの時間の長さ)。英語の duration(継続時間)の頭文字です。このページの計算機では秒で求めてから「9時間」「3時間59分」のような表示に直します。 |
| \(n\) | エヌ | 開始日から終了日までの日数の差。カレンダー通りに日付だけを数えます。(例:7月10日 → 7月12日なら \(n = 2\)) |
| \(3600\)・\(86400\) | さんぜんろっぴゃく、はちまんろくせんよんひゃく | 1時間の秒数(\(60 \times 60 = 3600\) 秒)と、1日の秒数(\(24 \times 3600 = 86400\) 秒)です。 |
用語
| 時刻 | じこく | 「8時30分」のような時の一点のこと。「9時間」のような時の長さである「時間」と区別します。このページは、2つの時刻の間にはさまれた時間の長さ(経過時間)を求めます。 |
| 時間 | じかん | 「9時間」のような時の長さのこと。「8時30分」のような時の一点である「時刻」と区別します。このページは、2つの時刻の間にはさまれた時間の長さ(経過時間)を求めます。 |
| 経過時間 | けいかじかん | 開始の時刻から終了の時刻までに過ぎた時間の長さのこと。このページで求める答えです。 |
| 24時間制 | にじゅうよじかんせい | 1日を0時〜23時で表す時刻の書き方(24時間表記)。午後の時刻は12を足します(午後5時30分 → 17時30分、午後10時 → 22時)。深夜0時は「0時」です。 |
| 60進法 | ろくじっしんほう ろくじゅっしんほう | 60でひとまとまり(1つ上の単位)になる数え方。60秒で1分、60分で1時間にくり上がります。普段の10進法と混ざると間違えやすいので、この計算機はいったんすべて秒に揃えて計算しています。 |
| くり下がり | くりさがり | 引き算で、その位だけでは引けないときに1つ上の位から借りてくること。時刻の筆算では10ではなく60を借ります(1時間 = 60分、1分 = 60秒)。 |
| 日またぎ | ひまたぎ | 夜行バスや夜勤のように、開始から終了までの間に日付が変わること。日付を入れずに計算するときは終了時刻の数字が開始時刻より小さくなるので、開始を前日とみなして1日分の86400秒を足して計算します(日付を入れたときは日数の差から計算します)。 |
| うるう年 | うるうどし | 2月29日がある年(およそ4年に1回)。日付をまたぐ計算で日数の差を数えるとき、2月29日をはさむと1日増えます。この計算機はカレンダー通りに正しく数えます。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
つまずいたら、この表の内容に戻って復習するのが近道です。
| 時刻と時間(小学2〜3年) |
|
| 午前・午後と24時間表記(小学2〜3年) |
|
| くり下がりの引き算(小学2〜3年) |
|
| 余りのある割り算(小学3〜4年) |
|
| 小数(小学3〜5年) |
|
Excelで計算する方法
| 時(24時間表記) | 17 |
| 分 | 30 |
| 秒 | 0 |
| 秒に直した時刻 | =B1*3600+B2*60+B3 |
| 開始:時(24時間表記) | 8 |
| 開始:分 | 30 |
| 開始:秒 | 0 |
| 終了:時(24時間表記) | 17 |
| 終了:分 | 30 |
| 終了:秒 | 0 |
| 開始を秒に直した値 | =B1*3600+B2*60+B3 |
| 終了を秒に直した値 | =B4*3600+B5*60+B6 |
| 経過時間(秒) | =IF(B8<B7,B8-B7+86400,B8-B7) |
| 経過:時間 | =QUOTIENT(B9,3600) |
| 経過:分 | =QUOTIENT(MOD(B9,3600),60) |
| 経過:秒 | =MOD(B9,60) |
| 開始日時 | =DATE(2026,7,10)+TIME(22,0,0) |
| 終了日時 | =DATE(2026,7,12)+TIME(6,30,0) |
| 経過(シリアル値の差=日数) | =B2-B1 |
| 経過時間の表示(時間:分:秒) | =TEXT(B2-B1,"[h]:mm:ss") |
| 総時間(小数の時間) | =(B2-B1)*24 |
2つ目の表は、B1〜B6に開始と終了の時刻を入れると、B7・B8で秒に直し(30600と63000)、B9に経過時間の秒(32400)が出ます。IF関数で「終了の方が小さければ86400を足す」という夜またぎの処理をしています。B10〜B12はQUOTIENT(割り算の商)とMOD(割り算の余り)で秒を時間・分・秒に分けたもので、答えは9時間0分0秒です。
3つ目の表は日付をまたぐ計算です。DATE関数とTIME関数で日時を作ると、Excelの中では日時が「シリアル値」(1日 = 1の数値)として扱われるので、B3の引き算だけで経過が日数の小数(約1.3542日)として出ます。B4のTEXT関数の表示形式「[h]:mm:ss」は24時間を超えても時間のまま表示する書き方で「32:30:00」、B5はシリアル値×24で総時間32.5時間になります。B列を自分の数値に書き換えるだけで使えます。
Googleスプレッドシートで計算する方法
| 時(24時間表記) | 17 |
| 分 | 30 |
| 秒 | 0 |
| 秒に直した時刻 | =B1*3600+B2*60+B3 |
| 開始:時(24時間表記) | 8 |
| 開始:分 | 30 |
| 開始:秒 | 0 |
| 終了:時(24時間表記) | 17 |
| 終了:分 | 30 |
| 終了:秒 | 0 |
| 開始を秒に直した値 | =B1*3600+B2*60+B3 |
| 終了を秒に直した値 | =B4*3600+B5*60+B6 |
| 経過時間(秒) | =IF(B8<B7,B8-B7+86400,B8-B7) |
| 経過:時間 | =QUOTIENT(B9,3600) |
| 経過:分 | =QUOTIENT(MOD(B9,3600),60) |
| 経過:秒 | =MOD(B9,60) |
| 開始日時 | =DATE(2026,7,10)+TIME(22,0,0) |
| 終了日時 | =DATE(2026,7,12)+TIME(6,30,0) |
| 経過(シリアル値の差=日数) | =B2-B1 |
| 経過時間の表示(時間:分:秒) | =TEXT(B2-B1,"[h]:mm:ss") |
| 総時間(小数の時間) | =(B2-B1)*24 |
Pythonで計算する方法
from datetime import datetime
# 開始と終了の日時(日付をまたがないときは同じ日付にする)
start = datetime(2026, 7, 10, 22, 0, 0) # 2026年7月10日 22時00分00秒
end = datetime(2026, 7, 12, 6, 30, 0) # 2026年7月12日 6時30分00秒
duration = end - start # 経過時間(timedelta型)
total_seconds = int(duration.total_seconds()) # 総秒
hours, remainder = divmod(total_seconds, 3600) # 時間と、残りの秒
minutes, seconds = divmod(remainder, 60) # 残りを分と秒に分ける
days, day_remainder = divmod(total_seconds, 86400) # 日に分けた表示用
print(f"経過時間: {hours}時間{minutes}分{seconds}秒")
print(f"日に分けた表示: {days}日と{day_remainder // 3600}時間{day_remainder % 3600 // 60}分")
print(f"総時間: {total_seconds / 3600}時間")
print(f"総分: {total_seconds / 60}分")
print(f"総秒: {total_seconds}秒")
数式記述言語(LaTeX等)での書き方(コピペ可)
T = 3600h + 60m + s
T = 3600h + 60m + s
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>T</mi><mo>=</mo>
<mn>3600</mn><mi>h</mi>
<mo>+</mo><mn>60</mn><mi>m</mi>
<mo>+</mo><mi>s</mi>
</mrow>
</math>
T = 3600h + 60m + s
totalSeconds = 3600*h + 60*m + s
T := 3600*h + 60*m + s;
T = 3600*h + 60*m + s;
T = 3600h + 60m + s
D = T₂ − T₁ (T₂ ≥ T₁), D = T₂ − T₁ + 86400 (T₂ < T₁)
D = T_2 - T_1 \quad (T_2 \ge T_1), \qquad D = T_2 - T_1 + 86400 \quad (T_2 < T_1)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>D</mi><mo>=</mo>
<msub><mi>T</mi><mn>2</mn></msub><mo>−</mo>
<msub><mi>T</mi><mn>1</mn></msub>
<mo>,</mo><mspace width="0.7em"/>
<mi>D</mi><mo>=</mo>
<msub><mi>T</mi><mn>2</mn></msub><mo>−</mo>
<msub><mi>T</mi><mn>1</mn></msub>
<mo>+</mo><mn>86400</mn>
</mrow>
</math>
D = T_2 - T_1, D = T_2 - T_1 + 86400
durationSeconds = If[t2 >= t1, t2 - t1, t2 - t1 + 86400]
dur := `if`(t2 >= t1, t2 - t1, t2 - t1 + 86400); # D(微分演算子)はMapleの予約語のため dur にしている
if t2 >= t1, D = t2 - t1; else, D = t2 - t1 + 86400; end
D = T_2 - T_1 (T_2 ≥ T_1), D = T_2 - T_1 + 86400 (T_2 < T_1)
D = 60(h₂ − h₁) + (m₂ − m₁)
D = 60(h_2 - h_1) + (m_2 - m_1)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>D</mi><mo>=</mo>
<mn>60</mn>
<mo>(</mo><msub><mi>h</mi><mn>2</mn></msub><mo>−</mo><msub><mi>h</mi><mn>1</mn></msub><mo>)</mo>
<mo>+</mo>
<mo>(</mo><msub><mi>m</mi><mn>2</mn></msub><mo>−</mo><msub><mi>m</mi><mn>1</mn></msub><mo>)</mo>
</mrow>
</math>
D = 60(h_2 - h_1) + (m_2 - m_1)
durationMinutes = 60*(h2 - h1) + (m2 - m1)
dur := 60*(h2 - h1) + (m2 - m1); # D(微分演算子)はMapleの予約語のため dur にしている
D = 60*(h2 - h1) + (m2 - m1);
D = 60(h_2 - h_1) + (m_2 - m_1)
D = 86400n + T₂ − T₁
D = 86400n + T_2 - T_1
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>D</mi><mo>=</mo>
<mn>86400</mn><mi>n</mi>
<mo>+</mo><msub><mi>T</mi><mn>2</mn></msub>
<mo>−</mo><msub><mi>T</mi><mn>1</mn></msub>
</mrow>
</math>
D = 86400n + T_2 - T_1
durationSeconds = 86400*n + t2 - t1
dur := 86400*n + T2 - T1; # D(微分演算子)はMapleの予約語のため dur にしている
D = 86400*n + T2 - T1;
D = 86400n + T_2 - T_1
ChatGPT に聞いて計算してもらう方法
あなたは時間計算アシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 開始の日時が2026年7月10日22時00分00秒、終了の日時が2026年7月12日6時30分00秒です(どちらも24時間表記)。 次の値をそれぞれ求めてください。 1. 経過時間(「○時間○分○秒」の形で) 2. 日に分けた表示(「○日○時間○分」の形で) 3. 総時間(小数の時間)・総分・総秒 Pythonのdatetime型の引き算で経過時間を求め、divmodで時間・分・秒に分けてください。 計算に使った式と、実行結果の数値を示してください。
計算ドリル(演習問題)
このページの計算を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
