「距離段考還有幾天?」「寒假一共放幾天?」「在一起第 100 天是哪一天?」日期的題目看起來只是加減法,卻很容易算出差一天的答案。原因通常不是計算能力,而是一開始沒有說清楚「哪一天算、哪一天不算」。這篇文章用幾個可以自己驗算的例子,把日期計算的觀念整理一次。只想快速得到答案的話,可以直接打開日期計算機,選好日期就會即時顯示結果。
相差幾天的基本算法
最單純的定義是:相差天數=結束日期-開始日期。也就是從開始日期的「隔天」數起,一路數到結束日期。同一個月份裡直接把日相減就好,例如 3 月 2 日到 3 月 6 日是 6-2=4 天。
跨月份時,建議拆成三段再相加:開始月份剩下的天數、中間完整的月份、結束月份已經過的天數。以 2026 年 10 月 12 日到 2027 年 1 月 1 日為例:
- 10 月剩下:31-12=19 天
- 11 月整個月:30 天
- 12 月整個月:31 天
- 1 月到 1 日:1 天
19 + 30 + 31 + 1 = 81
所以這兩個日期相差 81 天,換算成週是 81÷7=11 餘 4,也就是 11 週又 4 天。各月份的天數可以用拳頭記:凸起的指關節是大月(1、3、5、7、8、10、12 月有 31 天),凹下去的是小月(4、6、9、11 月有 30 天),2 月則是 28 或 29 天。
頭尾算不算?差的就是那 1 天
同樣是 3 月 2 日到 3 月 6 日,有人說 4 天,有人說 5 天,兩個人都沒有算錯,只是問的問題不一樣:
- 相差幾天(結束當天不算):6-2=4 天。意思是「從 3 月 2 日起,再過 4 天就是 3 月 6 日」。
- 一共幾天(頭尾都算):6-2+1=5 天。意思是「3 月 2 日、3 日、4 日、5 日、6 日,總共占了 5 天」。
判斷的訣竅是看你在算「間隔」還是算「個數」。這和數學裡的植樹問題是同一件事:一條路上種 5 棵樹,樹和樹之間只有 4 個間隔。日期是樹,相差天數是間隔。
所以請假單、旅行天數、活動檔期、租借天數這類「占用了哪幾天」的情況,通常要頭尾都算;而「還要等幾天」這類情況不算結束當天。一整年的例子更明顯:2026 年 1 月 1 日到 12 月 31 日相差 364 天,剛好 52 週;頭尾都算才是 365 天,也就是平年一整年。在日期計算機裡,勾選「包含結束當天(頭尾都算)」就可以在兩種算法之間切換。
倒數日怎麼算?
倒數日問的是「從今天到那一天還要過幾天」,所以用的是不含結束當天的算法,直接拿目標日期減今天。
假設今天是 2026 年 10 月 12 日,想知道距離 2027 年元旦還有幾天,答案就是前面算出的 81 天。當倒數變成 1,代表目標是明天;變成 0,代表就是今天。如果你習慣把今天也算成一天,數字會比別人多 1,和同學或同事對不上時,多半就是這個原因。
倒數日也可以反過來算。想知道「100 天後是哪一天」,就把今天加上 100 天:2026 年 10 月 12 日加 100 天是 2027 年 1 月 20 日(星期三)。驗算一下:10 月剩 19 天、11 月 30 天、12 月 31 天,合計 80 天,還差 20 天,所以落在 1 月 20 日。
紀念日是「第幾天」還是「滿幾天」?
紀念日最容易混淆的地方,是「第 100 天」和「滿 100 天」差一天。
- 第 100 天:把起始日當作第 1 天,那麼第 2 天是加 1 天,第 100 天就是加 99 天。
- 滿 100 天(100 天後):從起始日往後數 100 天,是加 100 天。
舉例來說,從 2026 年 2 月 14 日開始算:
- 第 100 天=2 月 14 日加 99 天=2026 年 5 月 24 日(星期日)
- 滿 100 天=2 月 14 日加 100 天=2026 年 5 月 25 日(星期一)
自己驗算 99 天:2 月剩 28-14=14 天、3 月 31 天、4 月 30 天,合計 75 天,還差 24 天,所以是 5 月 24 日。寶寶出生第幾天、連續打卡第幾天、開學第幾天,都是同樣的道理。
至於「一週年」這種以年為單位的紀念日,就不是加 365 天,而是年份加 1、月和日不變:2026 年 2 月 14 日的一週年是 2027 年 2 月 14 日。
加減月份遇到月底怎麼辦?
加減天數不會有爭議,但加減「月」會碰到一個問題:每個月的天數不一樣。1 月 31 日加 1 個月,2 月並沒有 31 日。一般的做法(也是這個工具的做法)是取該月的最後一天:
- 2026 年 1 月 31 日加 1 個月=2026 年 2 月 28 日
- 2024 年 1 月 31 日加 1 個月=2024 年 2 月 29 日(閏年)
- 2024 年 2 月 29 日加 1 年=2025 年 2 月 28 日
- 2024 年 2 月 29 日加 4 年=2028 年 2 月 29 日(又遇到閏年)
也因為這樣,「1 個月」並不是固定的天數:1 月 31 日加 1 個月只過了 28 天,3 月 1 日加 1 個月卻過了 31 天。如果你需要的是精確的天數(例如 30 天鑑賞期),就應該用加 30 天,而不是加 1 個月。
閏年規則:四年一閏、百年不閏、四百年再閏
地球繞太陽一圈大約是 365.2422 天,比 365 天多出將近四分之一天。如果每年都只算 365 天,日曆會一年一年跑在季節前面,所以要用閏年多補一天(2 月 29 日)。現行公曆的規則有三層:
- 年份能被 4 整除,是閏年(四年一閏)。
- 但年份能被 100 整除的,不是閏年(百年不閏)。
- 不過年份能被 400 整除的,仍然是閏年(四百年再閏)。
套用看看:
| 年份 | 判斷過程 | 結果 |
|---|---|---|
| 2024 | 能被 4 整除,不能被 100 整除 | 閏年 |
| 2026 | 不能被 4 整除 | 平年 |
| 1900 | 能被 100 整除,不能被 400 整除 | 平年 |
| 2000 | 能被 400 整除 | 閏年 |
| 2100 | 能被 100 整除,不能被 400 整除 | 平年 |
這樣安排之後,400 年裡共有 97 個閏年,平均一年是 (400×365+97)÷400=365.2425 天,和實際的 365.2422 天已經非常接近。
閏年會直接影響跨 2 月的天數。2024 年 2 月 28 日到 3 月 1 日相差 2 天(中間多了 2 月 29 日),2025 年同樣的兩個日期只相差 1 天。計算跨年度的天數時,記得先確認中間有沒有經過 2 月 29 日。
工作天數的算法與限制
想知道一段期間有幾個上班日或上課日,可以先算出總天數,再扣掉週六和週日。每滿 7 天一定有 5 個平日,剩下不滿一週的部分再逐日判斷。例如 2026 年 3 月 2 日(星期一)到 3 月 6 日(星期五),頭尾都算是 5 天,全部都是平日,所以工作天是 5 天;2026 年 1 月 1 日到 12 月 31 日相差 364 天,剛好 52 週,所以有 52×5=260 個平日。
要提醒的是,這種算法只看星期幾,沒有扣除國定假日與補假,也沒有加回補班日。每年的放假安排都不同,需要精確天數時,還是要對照當年度的行事曆再增減。
小結
- 相差幾天=結束日期-開始日期,結束當天不算;頭尾都算要再加 1 天。
- 倒數日用「相差幾天」;請假、旅行、活動天數用「頭尾都算」。
- 第 100 天是加 99 天,滿 100 天才是加 100 天。
- 加減月份遇到沒有的日期,取該月最後一天。
- 閏年:四年一閏、百年不閏、四百年再閏。
不想自己數月曆的話,把日期填進日期計算機,就能同時看到相差天數、幾週又幾天、幾年幾個月幾天、工作天數與星期幾;切換到「日期加減天數」還能直接算出幾天後、幾個月後是哪一天。