請輸入開始的日期與時刻(24 小時制),以及要加減的天、小時、分、秒。會連同星期,一次算出「幾小時後」和「幾小時前」的日期時間。
這個頁面可以做什麼
- 在開始的日期與時刻加上天、小時、分、秒,算出「幾小時後」的日期時間;減去則得到「幾小時前」的日期時間,兩者連同星期一次算出
- 「現在起 36 小時後是幾號幾點?」「48 小時前是什麼時候?」這類跨日的時刻計算,都能直接使用
- 跨過午夜、跨年,或跨過閏年 2 月 29 日的計算,也會依照日曆正確處理
- 時鐘的進位(60 秒=1 分、60 分=1 小時、24 小時=1 天)的淺顯解說,以及可直接複製到 Excel、Google 試算表、Python 的公式,也都整理在這個頁面
這個計算有什麼用?
晚上 21 時開始上 8 小時的班,下班時間是隔天早上 5 時(24 小時制的 21 + 8 = 29,超過 24 的部分進位到隔天,29 − 24 = 5)。中間休息 1 小時、共 9 小時後的話,就是隔天早上 6 時。
在護理、照護、工廠、便利商店等需要跨夜工作的職場,「幾點下班」「可以從幾點開始小睡幾小時」正是這個計算,排班表每天都用得到。
「間隔 6 小時以上服用」的藥,早上 8:30 吃了之後,下一次要到 14:30 以後才能吃。每 12 小時吃一次的藥,早上 8:30 的下一次就是 20:30。
退燒藥和抗生素的服藥間隔,直接關係到藥效與安全,先掌握「下一次幾點以後可以吃」很重要。實際的服藥間隔與次數,請務必遵照醫師、藥師的指示。
「得標後請於 48 小時內付款」「訂房後 72 小時內可免費取消」這類期限,常常是用小時表示。從星期五 15 時起算 48 小時內,期限就是星期日 15 時。
如果當成「2 天後」只數日期,就可能因為時刻而看錯期限。用小時表示的期限,像這樣算到日期與時刻會比較安心。
晚上 21 時開始做的優格,8 小時後是隔天早上 5 時;14 時開始的麵包第一次發酵 90 分鐘,在 15:30 結束。
舒肥、煙燻、醃漬這類長時間的料理,不只是「幾點會好」,連「想在早上 7 點吃,要幾點開始準備」這種「幾小時前」的倒推,也都用得上這個計算。
22:05 從桃園機場起飛、飛行 7 小時 35 分的紅眼航班,以台灣時間計算是隔天早上 5:40 抵達(分是 5 + 35 = 40,時是 22 + 7 = 29,跨日後成為 5 時)。
能由出發時刻與所需時間算出抵達時刻,就容易安排抵達後的行程。不過飛往國外時,這個計算得到的仍是出發地(台灣)的時間,要換成當地時間,還需要再加減時差。
公式
符號與用語解說
符號
| \(T_0\) | T 下標 0 | 開始日期時間(作為起點的日期與時刻)。右下角的小 0 是下標,表示「第 0 個=出發點」。 |
| \(T_1\)、\(T_2\) | T 下標 1、T 下標 2 | 計算結果的日期時間。\(T_1\) 是「之後」,\(T_2\) 是「之前」的日期時間。 |
| \(D\) | D(大寫) | 加減的時間量,把天、小時、分、秒合在一起表示。(例如:「1 天又 2 小時」) |
| \(d\)、\(h\)、\(m\)、\(s\) | d、h、m、s | 加減的時間量的組成:天數(\(d\))、小時(\(h\))、分(\(m\))、秒(\(s\))。「1 天又 2 小時」就是 \(d = 1\)、\(h = 2\)。分別是英文 day、hour、minute、second 的第一個字母。 |
| \(S\) | S(大寫) | 把加減的時間量換算成秒的合計,用 \(S = 86400d + 3600h + 60m + s\) 求出。 |
| \(q\)、\(r\) | q、r | 把小時的合計除以 24 時的商(往後的天數 \(q\))和餘數(剩下的小時 \(r\))。\(36 \div 24 = 1 \cdots 12\) 時,\(q = 1\)、\(r = 12\)。 |
用語
| 24 小時制 | 不用上午、下午,只用 0 時到 23 時的數字表示時刻的寫法。晚上 8 點就是 20 時。台灣的火車、高鐵時刻表也用這種寫法。這個計算機的輸入和結果都採用 24 小時制。 |
| 六十進位 | 滿 60 就成為上一個單位的計數方法。60 秒進位成 1 分,60 分進位成 1 小時。要注意只有小時和天之間是滿 24 進位。 |
| 進位 | 加法中,把超過單位上限的部分送到上一個單位(50 分 + 25 分 = 75 分 → 1 小時 15 分)。時間的計算是以 60 或 24 為單位進位。 |
| 退位 | 減法中,不夠減時向上一個單位借來(0:15 的 1 小時 30 分前 → 前一天的 22:45)。時間的計算是以 60 或 24 為單位退位。 |
| 閏年 | 有 2 月 29 日的年份。原則上每 4 年一次,但能被 100 整除的年份是平年,能被 400 整除的年份才是閏年(2100 年是平年,2000 年是閏年)。跨過 2 月底的計算,是否為閏年會讓結果的日期差 1 天。 |
| 星期的週期 | 星期每 7 天循環一次。加上剛好是 7 的倍數的天數(例如 168 小時 = 7 天)後,日期時間會和開始時是同一個星期幾。 |
建議先了解的基礎知識
為了能「理解意義」地使用這個頁面的計算,這裡整理了建議先了解的基礎知識。
遇到不懂的地方時,回頭複習這張表的內容是最快的方法。
| 時刻與時間量(國小二~三年級,7~9 歲) |
|
| 24 小時制(國小四年級,9~10 歲) |
|
| 進位、退位的加減法(國小二年級,7~8 歲) |
|
| 有餘數的除法(國小三年級,8~9 歲) |
|
| 日曆的規則(國小,約 7~10 歲) |
|
用 Excel 計算的方法
| 開始日期 | 2026/7/12 |
| 開始時刻 | 8:30:00 |
| 天 | 1 |
| 小時 | 2 |
| 分 | 0 |
| 秒 | 0 |
| 之後的日期時間 | =B1+B2+B3+B4/24+B5/1440+B6/86400 |
| 之前的日期時間 | =B1+B2-B3-B4/24-B5/1440-B6/86400 |
| 之後的日期是星期幾 | =TEXT(B7,"aaaa") |
| 天 | 1 |
| 小時 | 2 |
| 分 | 0 |
| 秒 | 0 |
| 換算成秒的合計 | =B1*86400+B2*3600+B3*60+B4 |
| 小時的合計 | 36 |
| 天數(商) | =QUOTIENT(B1,24) |
| 剩下的小時(餘數) | =MOD(B1,24) |
如果 B7、B8 顯示成「46216.4375」這樣的數字,請把儲存格格式改成自訂的「yyyy/m/d h:mm:ss」。第一個表格的答案是:之後的日期時間為 2026/7/13 10:30:00,之前的日期時間為 2026/7/11 6:30:00。B9 的 TEXT 函數(格式代碼 aaaa)會顯示之後的日期是星期幾(星期一)。
第二個表格的答案是 93600(秒),第三個表格的答案是 1 天、剩下 12 小時。只要把 B 欄改成自己的數值就能使用。
用 Google 試算表計算的方法
| 開始日期 | 2026/7/12 |
| 開始時刻 | 8:30:00 |
| 天 | 1 |
| 小時 | 2 |
| 分 | 0 |
| 秒 | 0 |
| 之後的日期時間 | =B1+B2+B3+B4/24+B5/1440+B6/86400 |
| 之前的日期時間 | =B1+B2-B3-B4/24-B5/1440-B6/86400 |
| 之後的日期是星期幾 | =TEXT(B7,"dddd") |
| 天 | 1 |
| 小時 | 2 |
| 分 | 0 |
| 秒 | 0 |
| 換算成秒的合計 | =B1*86400+B2*3600+B3*60+B4 |
| 小時的合計 | 36 |
| 天數(商) | =QUOTIENT(B1,24) |
| 剩下的小時(餘數) | =MOD(B1,24) |
只有星期的函數寫法和 Excel 不同,Google 試算表的 TEXT 函數要把格式代碼寫成 dddd(試算表的語言設定為中文(台灣)時,會顯示「星期一」)。結果顯示成數字(序列值)時,可以從選單的「格式 → 數值 → 日期時間」改成日期時間的顯示。
用 Python 計算的方法
from datetime import datetime, timedelta
start = datetime(2026, 7, 12, 8, 30, 0) # 開始日期時間(年, 月, 日, 時, 分, 秒)
days, hours, minutes, seconds = 1, 2, 0, 0 # 加減的時間量
difference = timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds)
after = start + difference # 之後的日期時間
before = start - difference # 之前的日期時間
weekday_names = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
print(f"換算成秒的合計:{difference.total_seconds():.0f} 秒")
print(f"之後:{after:%Y/%m/%d %H:%M:%S} {weekday_names[after.weekday()]}")
print(f"之前:{before:%Y/%m/%d %H:%M:%S} {weekday_names[before.weekday()]}")
用 LaTeX 等數學式語言的寫法(可直接複製)
T₁ = T₀ + D, T₂ = T₀ − D
T_1 = T_0 + D, \quad T_2 = T_0 - D
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>T</mi><mn>1</mn></msub><mo>=</mo>
<msub><mi>T</mi><mn>0</mn></msub><mo>+</mo><mi>D</mi>
<mo>,</mo><mspace width="0.7em"/>
<msub><mi>T</mi><mn>2</mn></msub><mo>=</mo>
<msub><mi>T</mi><mn>0</mn></msub><mo>−</mo><mi>D</mi>
</mrow>
</math>
T_1 = T_0 + D, T_2 = T_0 - D
after = DatePlus[start, {{d, "Day"}, {h, "Hour"}, {m, "Minute"}, {s, "Second"}}]
T1 := T0 + dur; T2 := T0 - dur; # D 是 Maple 的保留字(微分運算子),所以改用 dur
after = start + days(d) + hours(h) + minutes(m) + seconds(s);
T_1 = T_0 + D, T_2 = T_0 - D
S = 86400d + 3600h + 60m + s
S = 86400d + 3600h + 60m + s
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>S</mi><mo>=</mo>
<mn>86400</mn><mi>d</mi>
<mo>+</mo><mn>3600</mn><mi>h</mi>
<mo>+</mo><mn>60</mn><mi>m</mi>
<mo>+</mo><mi>s</mi>
</mrow>
</math>
S = 86400d + 3600h + 60m + s
totalSeconds = 86400*d + 3600*h + 60*m + s
S := 86400*d + 3600*h + 60*m + s;
S = 86400*d + 3600*h + 60*m + s;
S = 86400d + 3600h + 60m + s
h = 24q + r
h = 24q + r
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>h</mi><mo>=</mo>
<mn>24</mn><mi>q</mi>
<mo>+</mo><mi>r</mi>
</mrow>
</math>
h = 24q + r
q = Quotient[h, 24]; r = Mod[h, 24]
q := iquo(h, 24); r := irem(h, 24);
q = floor(h/24); r = mod(h, 24);
h = 24q + r
請 ChatGPT 幫忙計算的方法
你是日期時間計算助理。請務必實際執行 Python 程式碼來進行下面的計算,並只根據執行結果的日期時間回答(不要用心算或猜測作答)。 請求出 2026 年 7 月 12 日 8 時 30 分 0 秒加上「1 天又 2 小時」後的日期時間,以及減去後的日期時間。60 秒=1 分、60 分=1 小時、24 小時=1 天的進位與退位,以及跨月、跨年或閏年的處理,請依照日曆進行。 請分別列出計算用的程式碼,以及執行結果的日期時間(24 小時制)與星期幾。
使用方法
-
1輸入數值在輸入欄中輸入要計算的數值
-
2計算按下「計算」按鈕
-
3查看結果計算結果會立即顯示。計算的思路和公式的解說,也都能在同一個頁面查看
DataChef 的特色
不需專業知識,操作直覺又簡單
無須登錄任何個人資料
按下「下載」後自動刪除檔案
無須標註來源出處
亦無須事先取得商用授權