若要為日期加上天數,請以起始日期為基準,將月曆精確地往前推進指定的日曆天數——也就是將一個固定的時間點平移一個固定的偏移量——因此 3 月 15 日加上 30 天會落在 4 月 14 日,星期幾則透過依序計算中間經過的各月份天數與閏日來決定。算式看起來很簡單,但只有當你遵循月曆實際的結構時,它才會保持簡單:每個月有 28、29、30 或 31 天;平年的 2 月天數會縮短;世紀交界時可能會少掉一個閏日;而跨越年度分界時,月份數字會重置,年度則會遞增。任何將 30 乘以 30 來代表「一個月」的天真做法,都會在 1 月底、閏年的 2 月底,以及從 12 月 31 日跨入 1 月時悄悄出錯。這就是為什麼日期運算最好交由符合月曆邏輯的程式來處理——也就是 date-fns 等函式庫所使用的同一套邏輯——而不是用手動計算的天數乘法或固定 30 天的月份。日期加減計算機會為你套用這些規則,並在你輸入的當下顯示結果與對應的星期幾。

為日期加上天數代表什麼意思
為日期加上天數,是指產生一個新日期的運算,該日期為從起始日期往後(或往前)經過指定日曆天數後所得到的日期。輸入永遠只有兩項:起始日期與一個整數偏移量。輸出則是偏移量所落到的日期,以及該日期對應的星期幾。其中不包含時區、時刻成分,也不會自動略過假日——除非你另外指定——每一次計算都是以純粹的日曆天數進行。
「為日期加上天數」這個說法經常被寬鬆地使用。實務上,同樣的運算也涵蓋週、月、年,因為週只是 7 天的倍數,而月與年則是必須遵守各月份天數的日曆週期偏移。當你說「三個月後」,指的是向前跳三個月份邊界,而不是 90 天。當你說「14 天後」,指的是向前推進 14 個日曆天,也就是正好兩週。這個計算機透過同一套一致的規則處理這四種單位,因此不論你選擇「日」還是「月」,結果的行為都一致。
為日期加上天數背後的月曆運算
日曆日期看起來有規律,但底層規則在許多地方會讓天真的計算出錯。了解這些情況,就是正確答案與差一錯誤之間的差別。
月份並不全是 30 天。1 月、3 月、5 月、7 月、8 月、10 月和 12 月有 31 天。4 月、6 月、9 月和 11 月有 30 天。2 月在平年有 28 天,在閏年則有 29 天。任何假設「每月 30 天」的做法,一旦跨越 31 天的月份或只有 28 天的 2 月,就會開始產生偏差。
閏年遵循完整的格里高利曆規則。一個年份若能被 4 整除即為閏年,但世紀年還必須同時能被 400 整除才算閏年。因此 2024 年是閏年,2025 年不是,2100 年不是閏年,而 2000 年曾是閏年。這個計算機會套用這項規則,這代表 2 月的天數在你所處的年份永遠是正確的。
月底日期會自動截限。當你將某個日號不存在的目標月份的日期加上月數或年數時,結果會自動對齊到該月的最後一個有效日——這也是 date-fns 中 addMonths 所採用的行為。1 月 31 日加上一個月會變成 2 月 28 日(在閏年則是 2 月 29 日),而不是 3 月 3 日。3 月 31 日減去一個月則會變成 2 月 28 日。2020 年 2 月 29 日加上一個年度會變成 2021 年 2 月 28 日,因為 2021 年並非閏年。所得結果仍是相對於起始日期的正確日曆位置,只是落在目標月份中實際存在的最晚一天。
日數與週數的運算會乾淨地跨越邊界。加上天數或週數並不會進行截限,因為從 1 到 31 的每一天,在擁有該日期的所有月份中都是有效的。兩週永遠是 14 天,計算會自動跨越月份與年度的變更,因此將 90 天加到 10 月 15 日會落在 1 月中旬,而你完全不需要額外處理。
計算機中每個單位的運作方式
日期加減計算機提供四種單位,每一種單位都透過稍微不同的規則處理,使結果與一個細心的人手動寫下的答案一致。
| 單位 | 如何套用 | 處理的邊界情況 |
|---|---|---|
| 日 | 加上或減去精確的天數,跨越月份與年度邊界。 | 自動計算經過的閏日與只有 28 天的 2 月。 |
| 週 | 將一週視為正好 7 天,因此數量會乘以 7。 | 2 週永遠是 14 天,即使跨越閏日也是如此。 |
| 月 | 依指定的月數向前或向後跳躍,再對日號進行截限。 | 1 月 31 日 + 1 個月 = 2 月 28 日(閏年為 2 月 29 日)。 |
| 年 | 依指定的年數跳躍,並對目標年度的日號進行截限。 | 2020 年 2 月 29 日 + 1 年 = 2021 年 2 月 28 日。 |
請注意,「日」與「週」共用同一套「不截限」規則,因為月份中的每一天在某處都是有效的日子。「月」與「年」則共用「截限至最後一個有效日」規則,因為目標月份可能沒有原本的日號。這樣的分流使得答案在所有情況下都正確,包括 2 月與 30 天或 31 天月份之間那個尷尬的邊界。
如何使用計算機為日期加上天數
這個計算機的設計讓每一次變更都會即時更新結果,沒有「計算」按鈕。以下是取得未來或過去日期的精確步驟。
- 在日期欄位中選擇起始日期。預設為今天,因此你可以直接用於「從今天起」的問題,或將其變更為任何過去或未來的日期。
- 選擇「加」或「減」。「加」會將日期往未來移動;「減」則會將其往過去移動,並能順暢跨越月份、年度與閏年,無需額外處理。
- 在數字欄位中輸入數值。你可以反覆變更這個數字,比較 30、60 與 90 天的範圍,並觀察結果每次如何更新。
- 選擇單位:日、週、月或年。切換單位會立即重新計算,因此你可以從同一個起始日期看出「30 天」與「1 個月」的差異。
- 在輸入欄下方讀取結果日期與其對應的星期幾。畫面上會顯示一行精簡的摘要(例如 2026-07-06 + 30 天 = 2026-08-05),方便你將 ISO 格式複製到試算表、行事曆項目或工單中。
舉例來說,起始日期為 2026 年 7 月 6 日,選擇「加」、輸入 30、單位選擇「日」,工具就會顯示 2026 年 8 月 5 日。由於 7 月有 31 天,計算會從 7 月 6 日一路數到 7 月 31 日(25 天),然後繼續進入 8 月度過剩餘的 5 天。摘要列會完整保留這個算式,讓你直接將結果貼入試算表而無需重新輸入。
加上天數至關重要的常見情境
大多數的天數計算問題都屬於一小群實用的類別。了解該選擇哪個單位和知道如何挑選一樣重要,因為選錯單位會在不知不覺中讓截止日期偏移。
| 情境 | 常用單位 | 為何該單位適合 |
|---|---|---|
| 配送或出貨截止日 | 日 | 貨運業者報價的是日曆天,即使落在週末通常仍視為準時。 |
| 訂閱或帳單續訂 | 月 | 續訂遵循的是帳單週期,而非固定的天數。 |
| 多年期合約結束日 | 年 | 多年期合約對齊的是與起始日期相同的月份。 |
| 保固到期 | 日或月 | 短期保固以天數計算;長期保固則以月份表示較為清楚。 |
| 雙週衝刺界線 | 週 | 14 個日曆天是標示衝刺結束最俐落的方式。 |
由於結果會顯示星期幾,你可以立刻判斷截止日期是否落在週末,並在成為問題之前先行調整。若截止日期必須略過週末,請將本計算機與工作日計算機搭配使用,因為單純的日曆天數加法並不會自動把落在週六的日期提前到前一個週五。
你可能需要的相關日期計算
為單一日期加上天數,只是眾多日期問題中的一種。如果你真正的問題是「這兩個日期之間相差幾天」,你會需要的是日期差異計算機。若你想從出生日期計算年齡或週年紀念日,年齡計算機會以年、月、日三種單位顯示出生日期與今天之間的差距。對於必須略過週末的截止日期,「工作日計算機」會計算兩個日期之間的工作天數,而不是以日曆天數直接相加。當你已有一個固定的起始日期並想了解在某個偏移量下會落在哪一天時,「日期加減計算機」就派上用場。
這個計算機的所有運算都在你的瀏覽器中執行,因此你所輸入的日期從不會離開你的裝置。這裡沒有註冊流程、沒有上傳動作,也沒有用次數限制,因此無論是用於私人行程、機密合約日期,或是臨時的截止日檢查,都能安心使用。
若你正在權衡不同作法,如何在 Excel 中計算以年為單位的日期差異對此有詳細說明。
若你正在權衡不同作法,星期幾查詢表:查詢任意日期的星期對此有詳細說明。