這個計算器的功能
「時間加減分鐘計算器」會根據你輸入的起始時刻和分鐘數,以 24 小時制算出換算後的新時間。它能正確處理跨越午夜的情況,例如在 23:30 加上 90 分鐘,結果會是隔天的 01:00;同時也支援輸入負數,用來往前倒推時間。
使用方式
先輸入起始的小時(0–23)與分鐘(0–59),再填入你想加上的分鐘數。若要往前推算時間,請輸入負數。結果會以 HH:MM 格式顯示新的時刻、自午夜起算的總分鐘數,以及日數位移(+1 表示隔天,−1 表示前一天)。
公式說明
首先將起始時間換算成自午夜起算的分鐘數:\(\text{起始分鐘} = \text{小時} \times 60 + \text{分鐘}\)。接著加上要計算的分鐘數,再用 1440(一天的總分鐘數)取餘數,把數值收斂回同一天的範圍內。透過雙重取餘運算 \(((\text{總分鐘} \bmod 1440) + 1440) \bmod 1440\),即使在做減法時也能確保結果為正值。最後再把這個結果拆回小時與分鐘。
$$\text{newTime} = (\text{startMinutes} + \text{addMinutes}) \bmod 1440$$
實際範例
以 09:30 為起點,加上 90 分鐘。起始分鐘 = \(9 \times 60 + 30 = 570\)。總分鐘 = \(570 + 90 = 660\)。\(660 \bmod 1440 = 660\)。小時 = \(660 \div 60 = 11\),分鐘 = \(660 \bmod 60 = 0\),所以新的時間是當天的 11:00。
更多働例演習
每個例子遵循相同的公式,\( T = (((60\,h + m + a) \bmod 1440) + 1440) \bmod 1440 \),然後將 \(T\) 分割為新的時 \(\lfloor T/60 \rfloor\) 和新的分 \(T \bmod 60\)。一天有 1440 分鐘。
例 1 — 午夜翻轉:23:30 + 90 分鐘
將開始時間轉換為午夜後的分鐘並相加:
$$60 \times 23 + 30 + 90 = 1380 + 30 + 90 = 1500$$模 1440 進行約化以在午夜後環繞:
$$T = ((1500 \bmod 1440) + 1440) \bmod 1440 = 60$$分割為時和分:
$$\text{時} = \left\lfloor \tfrac{60}{60} \right\rfloor = 1, \qquad \text{分} = 60 \bmod 60 = 0$$結果:01:00,次日(+1 天)。
例 2 — 跨越午夜的減法:00:15 − 30 分鐘
此處添加值為負(\(a = -30\)):
$$60 \times 0 + 15 + (-30) = -15$$雙模運算處理負值,將結果保持在 0–1439 範圍內:
$$T = ((-15 \bmod 1440) + 1440) \bmod 1440 = (-15 + 1440) \bmod 1440 = 1425$$分割為時和分:
$$\text{時} = \left\lfloor \tfrac{1425}{60} \right\rfloor = 23, \qquad \text{分} = 1425 \bmod 60 = 45$$結果:23:45,前一天(−1 天)。
例 3 — 超過整天:12:00 + 1500 分鐘
1500 分鐘是 25 小時,所以時鐘應該向前推進整整一天,然後再推進額外的一小時:
$$60 \times 12 + 0 + 1500 = 720 + 1500 = 2220$$模 1440 進行約化(減去整天的 1440 分鐘):
$$T = ((2220 \bmod 1440) + 1440) \bmod 1440 = 780$$分割為時和分:
$$\text{時} = \left\lfloor \tfrac{780}{60} \right\rfloor = 13, \qquad \text{分} = 780 \bmod 60 = 0$$結果:13:00,次日(+1 天)。
常見問題
可以加超過 24 小時嗎?可以。日數位移會告訴你結果落在往後第幾天。
能用來做減法嗎?可以——在分鐘欄位輸入負數,時間就會往回推算;若跨越了午夜,會顯示負的日數位移。
這是 12 小時制還是 24 小時制?輸入與輸出都採用 24 小時制;例如 13:00 就等於下午 1:00。