在格里高利曆中,一個年份屬於閏年的條件是符合「可被 4 整除,但世紀年除外,除非也能被 400 整除」這條規則;符合時該年會有 366 天,其中二月會延長至 29 天,而不是平常的 365 天和 28 天。完整規則包含三個部分,可以依序檢驗,每一部分都是純粹的算術。第一,如果某年不能被 4 整除,則為平年,有 365 天,像是 2023、2025、2027 以及類似的年份都會被排除。第二,如果某年能被 4 整除,但不是世紀年,則為閏年,有 366 天,所以 2024 和 2028 都是閏年。第三,世紀年(也就是末兩位為 00 的年份)需要更嚴格的檢查:末兩位為 00 的年份,只有在也能被 400 整除時才是閏年。最後這個檢查正好說明了為什麼 2000 年是閏年,而 1900 年和 2100 年卻不是——這正是普通的「可被 4 整除」速算法會悄悄搞錯的差別。

how to calculate leap year in maths
how to calculate leap year in maths

數學中閏年的三部分規則

格里高利曆將一條單一規則細化為三層巢狀檢驗,讓平均年長能貼近地球軌道週期,大約是 365.2422 天。將規則寫成算式後,每一部分都能輕鬆用手計算:

  • 如果 year ÷ 4 有餘數,則該年不是閏年(365 天,二月有 28 天)。
  • 如果 year ÷ 4 沒有餘數 AND 該年末兩位不是 00,則該年是閏年(366 天,二月有 29 天)。
  • 如果該年末兩位是 00(世紀年),檢驗 year ÷ 400。如果沒有餘數,則該年是閏年;否則就是平年。

用簡潔的形式來說,年份 Y 為閏年時:

Y mod 4 = 0 AND (Y mod 100 ≠ 0 OR Y mod 400 = 0)

這一行就涵蓋了所有三個部分,也是數學老師或教科書要你「計算某年是否為閏年」時所預期的公式。mod 運算子會給出除法後的餘數,所以每一個部分都能用計算機或對小數字用心算檢驗。「世紀例外」之所以存在,是因為每四年加一天的閏日會讓曆法稍微超調;跳過大多數世紀年能把長期平均拉回到地球實際的軌道週期。

為什麼單獨使用「可被 4 整除」會得到錯誤答案

早期常教的一個速算法是「年份能被 4 整除就是閏年」。這個速算法在大多數情況下是對的,但在每個不能同時被 400 整除的世紀年都會出錯。被跳過的年份包括 1900、2100、2200、2300、2500 等等。下面的表格把三部分規則套用於若干年份,讓你能清楚看到速算法在哪裡失效。

Year ÷ 4 餘數 ÷ 100 餘數 ÷ 400 餘數 閏年?
20233
2024024
190000300
2000000
210000100
2400000

逐列讀取這個表格:2023 在第一部分就直接不通過;2024 通過第一部分,而且不是世紀年,所以是閏年;1900 通過第一部分,但在第三部分不通過,因為 1900 ÷ 400 餘 300,所以不是閏年;2000 通過所有部分,所以是閏年;2100 看起來和 1900 一樣,也不是閏年;2400 再次通過第三部分,所以是閏年。如果你只檢驗能否被 4 整除,你就會把 1900 和 2100 當成閏年,結果整整差了一天。

解題範例:檢驗 1900 年

讓我們逐步走過一個年份,把算術過程攤開來看。選 1900。

  • 步驟 1:1900 ÷ 4 = 475,餘數為 0,所以 1900 能被 4 整除。規則的第一部分滿足,但 1900 末兩位是 00,所以還沒結束。
  • 步驟 2:1900 ÷ 100 = 19,餘數為 0,確認 1900 是世紀年。規則中世紀年的分支適用。
  • 步驟 3:1900 ÷ 400 = 4,餘數為 300。因為餘數不為零,1900 不能被 400 整除,所以規則判定為 false。

結論:1900 年是平年。它有 365 天,而 1900 年的二月有 28 天,即使 1900 能被 4 整除也是如此。和 2000 年相比,唯一的差別在最後一步:2000 ÷ 400 = 5,餘數為 0,所以 2000 通過所有部分,是閏年,有 366 天,二月有 29 天。同樣的算術模式適用於你會遇到的每一個世紀年。

一個世紀或 400 年中有多少閏年

三部分規則產生了一個乾淨的長期規律,符合地球的軌道。在任意連續 400 年中,剛好有 97 年是閏年,303 年是平年。你可以用簡單的算術推導出這個數字:

  • 步驟 1:400 ÷ 4 = 100,所以粗略計算會得到 100 個候選閏年。
  • 步驟 2:400 ÷ 100 = 4,所以這個區塊中有 4 個世紀年(末兩位為 00 的年份)。
  • 步驟 3:400 ÷ 400 = 1,所以這些世紀年中只有 1 個能被 400 整除,保留為閏年。
  • 步驟 4:100 − (4 − 1) = 100 − 3 = 97 個閏年。

這個算術正是規則會長成這樣的原因。「每 4 個世紀年跳過 3 個」這部分,是用來修正每四年無條件加一天會造成的輕微多算。所得的 400 年平均年長為 365.2425 天,非常接近地球實際軌道週期約 365.2422 天,這就是格里高利曆在長時間下仍能與季節對齊的原因。對較短的範圍來說,數量會有所不同。像 2001 到 2100 這樣的世紀,由於世紀年 2100 被跳過,共包含 24 個閏年。像 1901 到 2000 這樣的世紀,由於世紀年 2000 沒有被跳過,共包含 25 個閏年。

需要用到閏年規則的數學題

這條規則會出現在一些反覆出現的數學題中,辨識該套用哪個分支能省下不少時間。

計算兩個年份之間的閏年數。常見的題目是「年份 A 到年份 B 之間(包含兩端)共有幾個閏年?」訣竅是先計算範圍內 4 的倍數,再扣除那些不是 400 的倍數的世紀年。你也可以利用「每個 400 年區塊有 97 個閏年」這項事實,當跨越 400 年邊界時,這能縮短計算。

計算兩個日期之間的確切天數。如果一個範圍跨越了 2 月 29 日,天數計算就必須包含那一天。為了得到乾淨的數學答案,把範圍寫成完整的年數、再加上閏年、再加上剩餘天數,然後把兩端各自的閏日加回去。

找出 2 月 29 日是該年的第幾天。在閏年中,2 月 29 日是第 60 天;在平年中,2 月 28 日是第 59 天。許多數學題會要你寫出當天的日數,以測驗你是否記得多出來的那一天。關於這項計算的相關逐步解說,請參考如何計算任何一年的天數序號的指南。

年齡與生日的算術。任何在 2 月 29 日出生的人,以民事曆法來說,嚴格上每四年才慶祝一次「閏年生日」,但他們實際的年齡依然正常遞增。常見的數學題會問:到某個指定日期為止,這個人已經慶祝過幾次閏年生日?答案就是出生年(包含)到目標年(包含)之間的閏年數。

軌道與季節的對齊。更深入的數學問題——也就是為什麼我們需要這條規則——來自軌道週期。地球約 365.2422 天的軌道週期,本質上和這條規則要解決的算術問題相同:如何用只使用整數年的曆法,去逼近一個非整數的天數。

用閏年計算機瞬間驗證任何年份

了解規則之後,最快的檢驗方式就是讓工具代勞,套用同一套三步算術。閏年計算機會在你的瀏覽器中執行這條規則,並顯示結果、推論過程以及前後相鄰的閏年。以下是它的具體使用方式:

  1. 在欄位中輸入任何年份——預設為今年,所以你一打開就會看到答案。
  2. 讀出該年是否為閏年,以及決定結果的規則和該年的天數。
  3. 查看前一個和下一個閏年,以及結果下方所列的鄰近閏年。

這個工具也適用於任何整數年,包括 0 和負數年(採用先驗格里高利曆,即天文學年份編號,年份 0 就是公元前 1 年),因為整除規則對所有整數都成立。一切都在你的瀏覽器中執行,你所輸入的年份不會被上傳,也沒有註冊或檢驗次數的限制。接著如果你需要計算兩個日期之間的確切天數,可以使用日期差異計算機;若要找出某個日期是該年的第幾天,可以使用年中第幾天計算機;若要計算跨閏年的年齡,可以使用年齡計算機

延伸閱讀:如何將電動窗改為手動:馬達功率計算