日期間隔計算器

免費的日期間隔計算器,只需輸入兩個日期,即可按照日曆規則精確算出相差的天數、週數、月數和年數,閏年也不會算錯。除了單純的天數差之外,還會同時顯示住院天數、租賃期限等場合使用的"含首尾天數"(把開始日期和結束日期都算作一天),無需再糾結該用哪種數法。

什麼是日期間隔計算

日期間隔計算是指計算兩個日期之間相差多少天。用手指數著日曆一天天數,很容易因為每個月的天數不同(28~31天)以及閏年2月29日的存在而數錯,期間越長,手動計算就越不現實。只需輸入開始日期和結束日期,本工具就會同時顯示總天數,以及"年・月・日""月・日""周・日"三種單位的換算結果。

此外,計算天數的方式有兩種:把開始日期算作第0天的"單純天數差",以及把開始日期和結束日期都算作一天的"含首尾計數法"。該用哪一種取決於用途——住院天數、出勤天數等場合通常需要含首尾計算,而只是想大致了解經過時間時則用單純天數差即可,兩者的結果恰好相差一天。本工具會同時顯示這兩種計數結果,無需事後自行加一或減一。全部計算均在瀏覽器本地完成,輸入的日期不會傳送到任何伺服器。

日期間隔計算的使用方法

  1. 輸入開始日期 在"開始日期"中輸入想要開始計算的日期。無論是過去還是未來的日期都可以指定,跨年度的時間段也能正常處理。
  2. 輸入結束日期 在"結束日期"中輸入想要計算到的日期。想知道到今天為止已經過了多少天時,點選"填入今天"按鈕即可立即填入今天的日期。
  3. 根據用途選擇合適的計數方式 結果會隨輸入即時顯示。想直觀表達期間長度時使用"年・月・日",需要精確天數用於申請或結算時,請根據情況選用"總天數"或"含首尾天數"。
  4. 檢視完整的換算內容 同時檢視"週・日""月・日"兩行,有助於核對結果,或用最合適的單位向他人解釋。

用好本工具的小技巧

  • 將即將到來的活動日期填入"結束日期",即可立即看到距離該活動還有多少天。點選"填入今天"按鈕可快速將結束日期設為今天。
  • "年・月・日"的換算結果是嚴格按照日曆計算的,例如從1月15日到3月20日會正確顯示為"2個月5天",而不是簡單地用總天數除以30得到的粗略估算。
  • 計算合同或專案工期時,可將開始日期設為簽約日、結束日期設為交付截止日,即可一目瞭然地看到剩餘天數和總工期。
  • 跨越閏年(包含2月29日)的時間段也會自動正確計算,無需手動核對閏年天數。
  • 即使不小心把結束日期填得比開始日期早,工具也會自動交換兩個日期進行計算,並顯示提示說明,無需手動修正。

日期間隔計算適用的場景

倒數活動或截止日期

將婚禮、考試、產品發布日或合約截止日設為結束日期,即可看到距離該日還有多少天,且會隨著今天日期的變化自動更新。

計算年資或紀念日以來的經過天數

將到職日期或戀愛・結婚紀念日設為開始日期,即可準確掌握從那天到現在經過了多少天、多少個月、多少年。

專案工期與交付截止日管理

將合約簽訂日設為開始日期、交付截止日設為結束日期,即可一目瞭然地看到總工期和剩餘天數,也可用經過天數除以總天數來計算長期專案的進度。

提前通知期與法定期限計算

許多合約和法規都要求提前若干天通知(例如解約前30天通知)。只需輸入通知日期和生效日期,即可確認所需的準確天數。

住院天數等含首尾計數場景

保險理賠和入院手續通常要求把入院日和出院日都算作一天進行計數,"含首尾天數"這一行可以直接給出這個數字。

日期計算相關術語

含首尾天數
把開始日期和結束日期都各算作一天的計數方式,等於單純天數差加1。適用於需要計算某種狀態持續了多少天的場合,例如住院天數、出勤天數、租賃期限等。
單純天數差
把開始日期算作第0天,只計算兩個日期之間間隔的計數方式。在日常和法律場景中,"從X到Y相差多少天"通常預設指這種演算法。
應當日
按月或按年計算期間時,與起算日期相同日號的那一天。例如1月31日的一個月後,由於2月沒有31日,會被視為2月的最後一天。本工具"年・月・日"的換算結果也採用同樣的原理,天數不足時會向上一個月借用末日進行計算。
閏年
2月有29天的年份。西曆年份能被4整除即為閏年,但能被100整除的年份則是平年,除非該年份同時也能被400整除。例如2000年是閏年,而1900年和2100年則不是。
格里曆
1582年由羅馬教皇格里高利十三世推行、目前全世界廣泛使用的太陽曆。憑藉上述閏年例外規則,使一年的長度非常接近地球實際公轉週期。
工作日
除去週末、法定節假日、年末年初休息日之後實際辦公的日子。銀行轉帳、快遞配送的天數通常按工作日而非日曆天數計算,因此需要單獨使用工作日計算工具

常見問題

年齡計算工具專門用於根據出生日期計算當前的年齡。而本工具是通用的日期間隔計算器,可以自由指定任意的開始日期和結束日期,用於計算除年齡以外的任何時間跨度,例如距離活動的天數、專案工期等。

時間計算工具處理的是"一天之內"的時分秒加減運算(例如給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天")。住院天數、租賃期限等場合通常採用含首尾的計數方式,而只是想了解大致經過時間時則適合單純天數差。本工具會同時顯示這兩種計數結果,無需再自行換算。