雜記 › 生活隨筆 › 距離過年還有多少天?節日倒數的日期怎麼算

距離過年還有多少天?節日倒數的日期怎麼算

去年我想趕在中秋前一週回家,九月中旬就把那週的住處訂了,結果那年的中秋落在 10 月 6 日,我提前半個月白住了一個星期。另一回更簡單:同事問「距離過年還有多少天」,他手機上那個數字是 114,我拿日曆一格一格數出來是 115,兩個人誰也沒說服誰。

後來我才知道這兩件事踩在兩個坑上:農曆節日在公曆上會漂移,日期差沒統一含不含當天。這兩條我現在都先問清再算。

同一個農曆日期,在公曆上每年都挪位置

正月初一、八月十五這種寫法定的是農曆日期,公曆那頭當然跟著動。原因很硬:一個朔望月約 29.53 天,12 個月約 354.36 天,而回歸年約 365.2422 天,兩頭差將近 10.88 天。差出來的部分靠置閏月補,於是農曆平年約 354 天、閏年約 384 天,同一節日相鄰兩年的距離就在這幾檔裡跳。

我照一份 2024 到 2030 年的農曆—公曆表逐年抄下來,間隔用兩個日期相減核對:

節日(農曆日期) 這七年在公曆上的落點 最早—最晚 相鄰兩年間隔
春節(正月初一) 02-10、01-29、02-17、02-06、01-26、02-13、02-03 1 月 26 日—2 月 17 日,窗口 22 天 354、384、354、354、384、355 天
元宵節(正月十五) 02-24、02-12、03-03、02-20、02-09、02-27、02-17 2 月 9 日—3 月 3 日,按同一年內的月日位置計窗口 22 天 354、384、354、354、384、355 天
端午節(五月初五) 06-10、05-31、06-19、06-09、05-28、06-16、06-05 5 月 28 日—6 月 19 日,窗口 22 天 355、384、355、354、384、354 天
中秋節(八月十五) 09-17、10-06、09-25、09-15、10-03、09-22、09-12 9 月 12 日—10 月 6 日,窗口 24 天 384、354、355、384、354、355 天
重陽節(九月初九) 10-11、10-29、10-18、10-08、10-26、10-16、10-05 10 月 5 日—10 月 29 日,窗口 24 天 383、354、355、384、355、354 天

兩處要說明。元宵的窗口按同一年內的月日位置數:2 月 9 日到 3 月 3 日是 22 天,起點若跨過了 2 月 29 日就是 23 天。重陽那行我原先抄錯最後兩年,2029 年是 10 月 16 日(週二)、2030 年是 10 月 5 日(週六),最早落點因此是 10 月 5 日、不是 10 月 4 日,窗口改成 24 天,間隔逐條相減為 383、354、355、384、355、354。

「中秋那週」這種說法訂東西基本沒用,得換成具體年月日。我記過一筆:2024 年中秋 9 月 17 日(週二),2025 年推到 10 月 6 日(週一),隔 384 天;2026 年回到 9 月 25 日(週五),只隔 354 天。2026 年端午 6 月 19 日、中秋 9 月 25 日,與當年放假安排一致。同一個農曆日期,相鄰兩年能差出整整一個月。

公曆固定日期的節日不漂日期,星期照漂。國慶都是 10 月 1 日,2024 週二、2025 週三、2026 週四、2027 週五、2028 週日、2029 週一、2030 週二。365 除以 7 餘 1、閏年 366 餘 2,星期一年挪一格、閏年挪兩格,2027 到 2028 那格便跳過了週六。要連休幾天、怎麼補班,看的是星期。

日期差要不要 +1,取決於含不含當天

「還有幾天」這句話裡有三種口徑,而它們都自稱正確答案。以今天 2026 年 10 月 15 日(週四)為基準,我把幾個目標日都算了一遍:

目標日 只算兩個日期之間(差值) 含今天也含目標日 說明
2026-10-18 重陽(週日)3 天4 天最容易被差一天的一組
2026-12-25 聖誕(週五)71 天72 天
2027-01-01 元旦(週五)78 天79 天跨年:仍只是兩個日期相減
2027-02-06 春節(週六)114 天115 天我和同事爭的就是這一組
2027-02-20 元宵(週六)128 天129 天

差值口徑就是把兩端歸到當天 00:00,相減再除以 86400000 取整。我用的 節日倒數 走這一種:節日當天顯示 0 天,不額外加一——倒數到 1 時,誰都不會誤以為那天已經是節日。

要 +1 的場景也存在:數「一共佔用幾天」時含首含尾才對。2024 年 2 月 1 日到 2 月 10 日春節,中間差 9 天,全算上是 10 天。所以我問「還剩多少天」用差值,問「這段一共多少天」用差值加一,寫下來補一句「是否含當天」。同事那次爭不出結果,就是因為誰都沒說這句。

跨年、以及「下一次」該取哪一次

節日清單裡同一個名字一年只出現一次,可查詢時間點會落在兩次出現之間。規則是:找嚴格不早於今天的最近一次,找不到就是超出資料範圍。我踩過的坑有兩種。

一種是資料有覆蓋年限。農曆節日的日期不是套個近似式就能算準的——現行農曆按定朔、定氣推算,統一取北京時間,再按國家標準 GB/T 33661-2017《農曆的編算和頒行》頒行,閏月落在哪個月是推算的結果,所以正經做法都是查曆表。我手頭這份覆蓋 2024 到 2030 年,2031 年的春節它給不出;這時顯示空白或拿上一年的日期硬套,都屬於資料覆蓋不到,得另查曆表。

另一種是「今年已經過去了」。公曆節日我同時取今年和明年兩次出現再挑;農曆節日的公曆日期本身會挪,取「最近的未來那次」是唯一穩的辦法,按「同一個農曆月份」猜公曆位置一定會錯。

要精確到時刻我就不在日期上倒數了。節日前一天晚上十點提醒這種涉及時刻的,我用 倒數計時器 盯著剩餘天時分秒;只要「某天前推 N 天是幾號」,比如提前 15 天訂東西,那是 時間加減計算 的活,它連結果日的星期一起給,省得我再數。

Q:為什麼兩個網站給我的「距離春節多少天」差一天?

口徑不同。一個算兩個日期之間的整天數(同一天為 0),一個把今天也算進去(同一天為 1)。數字都對,只是含不含當天的區別。

Q:閏月對節日日期有什麼影響?

影響相當大。有閏月那年農曆一年約 384 天,同一節日相比上一年會向後推將近 19 天;平年約 354 天,則向前縮約 11 天。我逐年算過春節的相鄰間隔:2024 到 2025 是 354 天,2025 到 2026 是 384 天,2026 到 2027 又回到 354 天。

Q:清單裡沒有我想算的日子怎麼辦?

把它的公曆日期先確定好(生日、結婚紀念日、公司週年都是這種),再算日期差。這類「一次性目標日」用按目標日期倒數的工具更合適,不用塞進節日清單裡。真要請年假,我會往保守方向取:把今天和節日前的準備日都算進去,寧可多留一天。

現在再遇到「距離過年還有多少天」,我先回一句「含不含今天」。訂住處那件事,去年那個 10 月 6 日的中秋賠掉一週之後,我都是先把當年的公曆日期抄在紙上再下單。

📎 相關文章

照片轉了 90°,換一部裝置方向又回來了:EXIF 標記與真實旋轉的分工 2026-10-22 每月同一天和每 28 天一次,一年差出 29 天 2026-10-22 用隨機比較器打亂名單,抽籤就已經不公平了 2026-10-21 加侖有兩種、馬力有兩種、位元組有兩套進位:換算前先問是哪一種 2026-10-21 2 月 29 日出生的人,平年哪天滿 18 歲?兩種週年口徑差一天 2026-10-21