日期間隔計算器
只需輸入兩個日期,即可按照日曆規則精確計算兩者之間相差的天數、週數、月數和年數。除了單純的天數差之外,還會同時顯示住院天數、租賃期限等場合使用的"含首尾天數"(把開始日期和結束日期都算作一天),無需再糾結該用哪種數法。
日期間隔計算小技巧
- 將即將到來的活動日期填入"結束日期",即可立即看到距離該活動還有多少天。點選"填入今天"按鈕可快速將結束日期設為今天。
- "年・月・日"的換算結果是嚴格按照日曆計算的,例如從1月15日到3月20日會正確顯示為"2個月5天",而不是簡單地用總天數除以30得到的粗略估算。
- 計算合同或專案工期時,可將開始日期設為簽約日、結束日期設為交付截止日,即可一目瞭然地看到剩餘天數和總工期。
- 跨越閏年(包含2月29日)的時間段也會自動正確計算,無需手動核對閏年天數。
- 即使不小心把結束日期填得比開始日期早,工具也會自動交換兩個日期進行計算,並顯示提示說明,無需手動修正。
常見問題
年齡計算工具專門用於根據出生日期計算當前的年齡。而本工具是通用的日期間隔計算器,可以自由指定任意的開始日期和結束日期,用於計算除年齡以外的任何時間跨度,例如距離活動的天數、專案工期等。
時間計算工具處理的是"一天之內"的時分秒加減運算(例如給9:30加上2小時15分鐘),而本工具處理的是日曆上"日期與日期"之間的間隔(以年、月、周、日為單位)。如果需要不足一天的精確時間計算,請使用時間計算工具。
不會報錯。工具會在內部自動交換兩個日期,按絕對值計算間隔,並顯示"已自動交換日期"的提示,因此即使不確定哪個日期在前也可以放心使用。
可以。得益於JavaScript原生的日期運算能力,包含2月29日的時間段也能準確計算出天數、月數和年數,無需手動確認是否涉及閏年。
"總天數"是開始日期與結束日期之間的單純天數差(開始日期算作第0天)。"含首尾天數"是在此基礎上加1,適用於住院天數、租賃期限、在職天數等把開始日期和結束日期都各算作一天的場合。兩者並非孰對孰錯,請根據實際用途選用。
閒話 ― 手動計算天數時容易踩的坑
手動估算兩個日期之間的間隔時,很多人會把一個月簡單地當作30天來概算。但實際上每個月的天數在28天到31天之間不等,例如把1月15日到3月20日估算為"64天÷30≈2.1個月",與按日曆精確計算得出的"2個月5天"之間可能存在偏差——而這種偏差在涉及合同期限或賬單到期日的判斷時可能會造成誤解。本工具直接比較Date物件的年、月、日欄位,因此始終能返回符合日曆規則的準確結果。
閏年的判定規則並不只是"每4年一次"這麼簡單。按照格里高利曆的閏年規則,能被4整除的年份是閏年,但能被100整除的年份則是平年,除非該年份同時也能被400整除。例如2000年是閏年,而1900年和2100年則不是。這一例外規則已內置於JavaScript的標準日期處理機制中,本工具也直接沿用了這一行為。
計算"經過天數"時存在兩種常見的計數方式:一種是把開始日期算作第1天的"含首尾"計數(例如1月1日到1月10日算作"10天"),另一種是隻看差值的"單純天數差"(算作"9天")。住院天數、租賃期限等場合通常採用含首尾的計數方式,而只是想了解大致經過時間時則適合單純天數差。本工具會同時顯示這兩種計數結果,無需再自行換算。