數學教學

兩個日期相差幾天怎麼算?頭尾算不算、倒數日、紀念日與閏年一次搞懂

用可以自己驗算的例子說明日期相差天數的算法、頭尾算不算為什麼差一天、倒數日與紀念日第幾天的差別、加減月份遇到月底的處理,以及閏年的判斷規則。

#日期計算#倒數日#閏年

「距離段考還有幾天?」「寒假一共放幾天?」「在一起第 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 日)。現行公曆的規則有三層:

  1. 年份能被 4 整除,是閏年(四年一閏)。
  2. 但年份能被 100 整除的,不是閏年(百年不閏)。
  3. 不過年份能被 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 天。
  • 加減月份遇到沒有的日期,取該月最後一天。
  • 閏年:四年一閏、百年不閏、四百年再閏。

不想自己數月曆的話,把日期填進日期計算機,就能同時看到相差天數、幾週又幾天、幾年幾個月幾天、工作天數與星期幾;切換到「日期加減天數」還能直接算出幾天後、幾個月後是哪一天。

常見問題

算兩個日期相差幾天時,開始和結束當天要不要算?

看你問的是哪一種。「還有幾天」只要用結束日期減開始日期,結束當天不算;「一共幾天」則是頭尾都算,要再加 1 天。例如 3 月 2 日到 3 月 6 日相差 4 天,但一共是 5 天。

紀念日的第 100 天要加 100 天嗎?

如果把第一天當作第 1 天,第 100 天是起始日期加 99 天;如果說的是「滿 100 天」或「100 天後」,才是加 100 天。兩種說法剛好差一天。

閏年怎麼判斷?

四年一閏、百年不閏、四百年再閏:年份能被 4 整除是閏年,但能被 100 整除的不是,能被 400 整除的又是。2024 年和 2000 年是閏年,1900 年和 2100 年不是。

喜歡這篇文章嗎?

你的支持能幫助 Alan 工具箱持續維護,並新增更多免費工具與教學內容。

支持 Alan 工具箱 ↗