這個計算機的功能
本工具會計算「起始日期」與「結束日期」之間經過的時間,並同時以五種方式呈現:總天數;週數加上剩餘天數;完整曆月數加上剩餘天數;完整年數加上剩餘天數;以及一般常用的「幾年幾個月又幾天」的拆解方式。最常見的用途,就是算出自己從出生到今天究竟活了多少天。
適用範圍說明(日本)
計算本身屬於通用的日期運算,適用於任何國家。只有那個選用的「年號」下拉選單才是日本專屬的:選擇明治、大正、昭和、平成或令和時,會把年號年份加上一個固定的基準值,換算成西元(公曆)年份(例如令和元年 = 2018 + 1 = 2019)。預設且主要的模式是西元年(公曆),也就是你輸入的數字即為完整的西元年份。日本年號的輸入只有從明治 6 年(1873 年)開始才有意義,因為日本是在那一年才採用公曆。
使用方法
分別為兩個日期選擇曆法/年號(一般使用時維持在「西元(公曆)」即可),輸入起始與結束日期的年、月、日,再選擇是否要把第一天也算進去。選「不計入」會得到單純的日期差;選「計入」則會加上一天,使起訖兩端都被計算在內。
計算公式
每個日期都會先換算成「儒略日數(JDN)」,這是一種連續的天數計數方式,與月份和年份的界線無關,並能自動處理閏年。總天數即為 JDN(結束)減去 JDN(起始),視需要再加一。週數由總天數除以 7 取整而得。月數與年數則採用「週年法」:只有當日期走到相同的「日」時,才算滿一個曆月,因此拆解結果會符合我們平常陳述年齡與時間長度的習慣。
$$\Delta = \text{JDN}(Y_e,M_e,D_e) - \text{JDN}(Y_s,M_s,D_s) + \text{First Day}$$ $$\text{where}\quad \left\{ \begin{aligned} Y_s &= \text{Start Era} + \text{Start Year},\; M_s = \text{Start Month},\; D_s = \text{Start Day} \\ Y_e &= \text{End Era} + \text{End Year},\; M_e = \text{End Month},\; D_e = \text{End Day} \end{aligned} \right.$$
實例演算
起始 2000-06-15,結束 2010-06-20,不計入第一天。JDN(起始)\(=2451711\),JDN(結束)\(=2455368\),因此天數 \(= 3657\)。週數 \(= 522\) 週又 3 天。月數 \(= 120\) 個月又 5 天。年數 \(= 10\) 年又 5 天。年/月/日 \(= 10\) 年 0 個月 5 天。
常見問題
如果結束日期早於起始日期會怎樣?總天數會顯示為負數,用來表示時間的方向;而週/月/年的拆解則以絕對值(時間長度)呈現。
有處理閏年嗎?有的。儒略日數會自動把閏年與 2 月 29 日納入計算。
為什麼月數和年數不是直接用天數除以 30 或 365?因為實際的每個月和每一年長短不一。本工具計算的是真正的曆法週年,比用固定平均值更為準確。