日期與時間 指南
兩個日期差幾天怎麼算?包含結束日、跨月跨年與閏年完整指南
日期差最常見的錯誤不是算術,而是開始前沒有定義:起始日與結束日到底算不算一天。
更新日期:
「8 月 1 日到 8 月 5 日是幾天?」
有人回答 4 天,有人回答 5 天。
兩個人都可能沒有算錯,而是在算不同問題。
速答:兩個日期相差幾天怎麼算?
如果你問的是「經過多少個完整日曆間隔」,8/1 到 8/5 通常是 4 天;如果你問的是「8/1、8/2、8/3、8/4、8/5 這五個日期都算在活動內」,就是 5 個日曆日。日期差計算前一定先定義是否包含結束日;正式報名、法律、合約或行政期限則應以該制度的正式計算規則為準,不能只靠一般日期計算器。
一、先看最簡單的例子
開始:
2026-08-01
結束:
2026-08-05
算時間間隔
從 8/1 00:00 到 8/5 00:00:
- 1 → 2:1 天
- 2 → 3:1 天
- 3 → 4:1 天
- 4 → 5:1 天
共:
4 天。
算涵蓋的日期
活動包含:
- 8/1
- 8/2
- 8/3
- 8/4
- 8/5
共:
5 個日曆日。
所以「差 1 天」很多時候不是 bug,而是 inclusive / exclusive 的定義不同。
二、什麼叫包含結束日?
如果工具有:
包含結束日
勾選後通常代表:
把終點那一天也當成範圍內的一天。
例如:
8/1~8/5
不含終點:
4 天
含終點:
5 天
三、開始日要不要算?
一般「日期差」常以兩個日期的邊界差計算,不把開始日額外 +1。
但「活動天數」「住院日數」「住宿晚數」「報名期間」可能有各自制度定義。
例如:
住 8/1 入住,8/5 退房
是:
- 4 晚;
- 但跨 5 個日曆日期。
同一組日期可以有不同正確答案。
四、跨月怎麼算?
例如:
2026-01-30 → 2026-02-02
間隔:
- 1/30 → 1/31:1
- 1/31 → 2/1:1
- 2/1 → 2/2:1
共:
3 天。
如果包含 2/2:
4 個涵蓋日期。
跨月不需要自己記每月有幾天,只要用真正的日期物件或日期計算器。
五、跨年怎麼算?
2025-12-31 → 2026-01-01
時間間隔:
1 天。
若把兩個日曆日期都算活動日:
2 天。
「跨了一年」不代表相差 365 天。
六、閏年為什麼會影響?
Gregorian calendar 中,閏年一般是:
- 可被 4 整除;
- 但整百年通常不是;
- 除非也可被 400 整除。
所以:
- 2024 是閏年;
- 2100 不是;
- 2000 是。
RFC 3339 也沿用這套 Gregorian leap-year 規則。
七、2024-02-28 到 2024-03-01 是幾天?
因為 2024 有 2/29:
- 2/28 → 2/29:1
- 2/29 → 3/1:1
所以:
2 天。
非閏年同樣日期範圍則是:
1 天。
八、日期差和「24 小時」完全一樣嗎?
如果只處理純日期,例如:
YYYY-MM-DD
通常可以用日曆日理解。
但帶時間與時區後:
一個「本地日曆日」不一定永遠等於 24 小時。
在有 Daylight Saving Time 的地區,跨越 DST 轉換時,某一天可能是 23 或 25 小時。
台灣目前沒有 DST,但跨國系統與 API 仍可能遇到。
九、所以日期工具為什麼最好只處理 Calendar Date?
如果需求只是:
2026-08-01 到 2026-08-05 幾天?
應把它視為:
calendar-date arithmetic。
不要先轉成任意本地午夜 timestamp 再除以 86,400,000,否則某些 DST 時區可能產生意外。
十、週數怎麼理解?
如果日期差是 17 天:
17 ÷ 7 = 2 週餘 3 天
這是一種 duration 表示。
但「跨了幾個星期」又可能是另一種問題,例如跨了 ISO week boundary。
不要把:
17 天 = 2.43 週
和:
涵蓋三個行事曆週
混為一談。
十一、月份差更不能直接用 30 天除
例如:
1/31 → 2/28
不是:
28/30 = 0.93 個月,所以不到一個月。
日曆月份是 calendar unit,不是固定 30 天。
如果你的問題是:
- 滿幾個月;
- 租期幾個月;
- 月齡;
要定義月底規則。
十二、年齡計算也是日期差的一種特殊問題
年齡不是:
總天數 ÷ 365
因為:
- 閏年;
- 生日是否已過;
- 2/29 出生;
都會影響。
FunnyTools 已有獨立的「年齡怎麼算」指南,因此本頁不重複搶該搜尋意圖。
十三、工作日和日曆日也不同
日期差工具回答:
calendar difference。
如果你要排除:
- 星期六;
- 星期日;
- 國定假日;
- 公司休假;
應改用:
延伸:工作日怎麼算完整指南
十四、正式期限最危險的錯誤:自己猜是否含當日
例如規則寫:
收到通知後 10 日內。
這裡可能涉及:
- 起算日;
- 末日;
- 例假日;
- 法定遞延;
- 送達定義。
一般日期計算器不能替代正式規則。
十五、日期差計算器適合什麼?
適合:
- 旅行天數;
- 專案區間;
- 活動規劃;
- 倒數準備;
- 任務期間;
- 日常比較。
正式法律、銀行、勞動、稅務、法院期限:
必須查正式來源。
十六、常見錯誤
錯誤 1
沒有先定義是否含結束日。
錯誤 2
用每月 30 天估月份。
錯誤 3
忘記閏年 2/29。
錯誤 4
把日曆日與工作日混用。
錯誤 5
把本地日曆日一律當 24 小時。
錯誤 6
拿一般工具算正式法定期限。
十七、快速判斷表
| 你真正想問的問題 | 適合方式 |
|---|---|
| 兩日期相隔多久 | 日期差 |
| 活動涵蓋幾個日期 | 含結束日 |
| 排除週末/假日 | 工作日 |
| 幾歲 | 年齡計算 |
| API 時間點 | Timestamp / ISO 8601 |
| 法律截止期限 | 查正式規則,再輔助試算 |
十八、FAQ
8/1 到 8/5 是 4 天還是 5 天?
時間間隔通常是 4 天;若 5 個日曆日期都算活動日,就是 5 天。
跨年會自動算嗎?
真正日期計算器會依 Gregorian calendar 處理。
2024 年有 2 月 29 日嗎?
有,2024 是閏年。
為什麼我的系統永遠差 1 天?
先檢查 inclusive/exclusive,再檢查 UTC、本地時區與午夜解析。
工作日要用日期差嗎?
不建議,應用可排除週末與假日的工作日工具。
十九、延伸閱讀
下一步
只是想知道兩個日期相差多少天?
先決定是否包含結束日,再用 FunnyTools 日期差計算器核對。
重點速記
8/1 → 8/5 = 4 intervals
8/1,2,3,4,5 = 5 inclusive calendar dates