這個計算機的功能
本工具可精準計算「起始日期時間」到「結束日期時間」之間的時間長度(結束減起始)。計算結果會以多種等價的形式呈現:總天數、週數加天數的拆解、天數加小時的拆解、總小時數、總分鐘數、總秒數,以及清楚的「天數+HH:MM:SS」拆解。它適用於任何採用先發格里曆(proleptic Gregorian calendar)的日期,因此通用於全球,不限定任何國家。
使用方式
先輸入起始的年、月、日,以及(選填)時、分、秒,接著用同樣方式填入結束日期時間。如果你只在意完整天數,可以把時間欄位都留為 0。「年號」下拉選單預設為 西元(CE / AD),此時你輸入的年份會直接採用。日本年號選項(明治、大正、昭和、平成、令和)只是為了方便日本讀者使用:系統會在運算前,把你輸入的年份加上固定的偏移量換算成西元年。因此無論選擇哪個年號,最後算出的間隔結果都完全相同。
公式說明
每個日期都會以 Fliegel–Van Flandern 演算法換算成儒略日數(Julian Day Number, JDN)。JDN 提供一條連續的整數日計數,能正確處理閏年(包含百年規則)以及各月天數不一的情況。當天的時間則以秒數加入計算。經過的總秒數即為
$$\Delta t = \left(\text{JDN}_{e} - \text{JDN}_{s}\right)\cdot 86400 + \left(T_{e} - T_{s}\right)$$其餘所有單位都是由這個單一數值除算或拆解而來。其中
$$\left\{ \begin{aligned} T_{s} &= 3600\,\text{Start Hour} + 60\,\text{Start Min} + \text{Start Sec} \\ T_{e} &= 3600\,\text{End Hour} + 60\,\text{End Min} + \text{End Sec} \end{aligned} \right.$$而 JDN 的計算為
$$\text{JDN} = D + \left\lfloor \frac{153m + 2}{5} \right\rfloor + 365y + \left\lfloor \frac{y}{4} \right\rfloor - \left\lfloor \frac{y}{100} \right\rfloor + \left\lfloor \frac{y}{400} \right\rfloor - 32045$$$$\left\{ \begin{aligned} a &= \left\lfloor \frac{14 - M}{12} \right\rfloor \\ y &= Y + 4800 - a \\ m &= M + 12a - 3 \end{aligned} \right.$$
實際範例
起始:2024-01-01 00:00:00。結束:2024-03-01 12:00:00。由於 2024 年是閏年,一月(31 天)加上二月(29 天)共 60 個完整天數,再加上 12:00 的半天,因此相差為 \(60.5\) 天=\(5{,}227{,}200\) 秒=\(1{,}452\) 小時=\(87{,}120\) 分鐘。拆解後為 8 週+4 天,或 60 天+12:00:00。
常見問題
結果可以是負數嗎?可以。如果結束時間早於起始時間,各項總計會顯示為負值;拆解列則顯示其絕對值(大小)。
會同時計入頭尾兩個端點嗎?不會。它計算的是經過的時間間隔(結束減起始),而非含頭含尾的天數。
有處理閏年嗎?有,且自動處理,包含「能被 100 整除的年份不是閏年,除非同時能被 400 整除」這項規則。