日期安排
日期差一天:相隔天數和包含首尾要分開算
6 月 12 日到 14 日,為什麼可算成兩天或三天?用同日、跨年和閏日案例核對日期差與包含首尾,再分清日曆天數、實際時數和工作天。
12 日到 14 日,相隔兩天、共有三個日期
6 月 12 日到 14 日,相隔 2 天,但把 12、13、14 日列出來,會得到 3 個日期。兩個答案都可能對,要看你問的是「隔了幾天」,還是「一共用了哪些日期」。遇到差一天,我會先查是否包含首尾,不急著把結果加一。
例如 6 月 12 日入住、14 日退房,通常會說兩晚住宿;如果活動在這三個日期每天都進行,就需要算三個活動日。同樣的起訖日,用途不同,計算方式也會不同。
這個一般排程示例不能代替住宿契約、租借收費或法定期間的規則。收費可能看晚數、時數或跨日,期限也可能另有起算方式。先讀正式條件,再讓工具算日期。
把起訖設成同一天,最容易看出差別
不知道工具現在算的是哪一種?把開始和結束都填成 2026 年 9 月 27 日就看得出來:日期差是 0,包含首尾是 1。前者沒有跨到另一個日期,後者把這一天列入清單。我會先用同日核對設定,再算正式的期間,因為這個例子不必跨月加總,也容易發現自己選錯了算法。
不過,同日活動如果只辦兩小時,算出一天也不表示經過了 24 小時。日曆日期的數量和實際時數不能互換。排場地時,開始與結束時間仍要另外留下。
起訖日填反時,也要看工具怎麼處理。本站日期計算器會提示「結束日期不能早於開始日期」;其他工具可能顯示負值或交換日期。看到正數,不能因此假設輸入沒有顛倒。
跨年與閏日,把年份一起算進去
2026 年 12 月 31 日到 2027 年 1 月 2 日,依序經過 12 月 31 日、1 月 1 日、1 月 2 日,所以日期差是 2,包含首尾是 3。換年不會憑空多一天,也不能只用日欄位的 2 減 31。
2024 年 2 月 28 日到 3 月 1 日,中間有 2 月 29 日,日期差是 2,包含首尾是 3。換成 2025 年同一組月日,日期差只有 1,包含首尾是 2。省掉年份,就會把閏年的差異漏掉。
要算較長期間,可以先用下表的小範圍核對設定,再輸入完整日期。跨月不用憑記憶加總各月天數,但要保留年份與是否包含首尾,才能重做相同結果。
| 日期範圍 | 相隔天數 | 包含首尾 |
|---|---|---|
| 2026-09-27 至同日 | 0 | 1 |
| 2026-12-31 至 2027-01-02 | 2 | 3 |
| 2024-02-28 至 2024-03-01 | 2 | 3 |
| 2025-02-28 至 2025-03-01 | 1 | 2 |
跨了兩個日期,也可能只過一小時
再看一個容易混淆的例子:2026 年 9 月 27 日 23:30 到隔日 00:30,只經過一小時,卻涉及兩個日曆日期。只輸入日期會算出相隔一天。若你要的是實際經過多久,就得改用含時區的完整時刻,不能靠這個「一天」推回時數。
跨國行程還要確認當地時區與日光節約時間。不同地區的一個日曆日,未必都對應 24 小時,不能拿日期差直接推算航程。如果只需要日曆天數,則照明確的日期規則計算即可。
算足歲也不能只拿今年減出生年,還要看生日是否已到。總天數除以 365 同樣不是精確足歲。判斷年齡時用完整年月日,涉及資格認定再核對適用規則。
通知別人時,把算法和日期寫在一起
讀書會可以寫「9 月 27 日至 9 月 29 日,包含首尾,共三個活動日」;提醒則可寫「9 月 27 日距離 9 月 29 日還有兩天」。兩句用同一組日期,讀者卻能看出你算的是活動日還是日期差。
需要扣週末或假日,就改成工作天問題,另外指定適用日曆。日期差不會知道公司哪天上班,也不會扣掉臨時停班。先確認哪些日期要排除,再選工具。
保存結果時,我會把開始、結束、是否包含首尾一起留下,也註明輸入的是日期還是完整時刻。只截一個大數字,過幾天就很難還原。兩個工具答案不一樣時,先用這些條件對照,才知道是在算同一件事,還是真的算錯了。
參考來源
- MDN:日期、時刻與時區說明時間戳與當地/UTC 日期表示;本文日曆算例另外重算。