日期運算

日期時間計算器

把日曆上最容易算錯的日期題交給它:給某個日期加減年、月、周、天,算兩個日期之間隔了多少天和工作日,或者用生日算出精確到年月日的年龄與下次生日。閏年和月末自動處理,數據不出瀏覽器。

日期加減 工作日計算 年龄精確到天 本地計算

加月時優先保留原來的「日」;目標月份沒有這一天時,自動收斂到該月最後一天(如 1 月 31 日 + 1 個月 = 2 月 28/29 日)。

總天數按兩個日期之間經過的自然日計算;工作日會排除週六和週日。

年齡按整年、整月、整日累計;2 月 29 日出生的人在平年按 2 月 28 日計算。

本次會話

記錄只保存在當前頁面的記憶體裡,重新整理或關閉標籤頁後即消失。

為日常日期問題而做

一個頁面,三種演算法

平時要靠掰手指或翻表格才能算清的日期問題,這裡輸入即得。

01

任意日期加減

一次完成年、月、周、天的加減,適合算截止日、續費日、提醒日和交付週期。

02

兩個日期差多少

以總天數、周數以及「年月日」三種口徑給出兩個日期之間的距離。

03

工作日統計

只算周一至周五,用於排期、SLA計時和請假天數估算。

04

精確年齡

把生日換算成幾歲幾個月幾天,並給出下次生日的日期與倒計時。

05

邊界情況自動處理

閏年、月末、週末都由UTC日期運算統一處理,結果不會因夏令時差一天。

06

打開就能用

免註冊、無上傳,所有計算都在瀏覽器本地完成。

日期運算的規則

幾個關鍵規則,決定計算結果是否與紙質日曆一致。

「加一個月」到底是多少天?

月份天數不固定,所以日期計算以「同一天」為錨點:1 月 15 日 + 1 個月 = 2 月 15 日。目標月份沒有這一天時,會收斂到該月最後一天:1 月 31 日 + 1 個月 = 2 月 28 日(閏年 29 日),3 月 31 日 − 1 個月同樣是 2 月 28/29 日。

為什麼天數、周數和年月日結果對不上?

總天數是兩個日期之間固定數量的自然日;周數只是把總天數按 7 分組。年月日差則是順著日曆逐段推進得到的結果,更接近口頭表達(1 年 2 個月 3 天),不能簡單用除法換算。

工作日是怎麼算的?

這裡的工作日指周一至周五,不包含法定節假日。各國節日不同,工具不做猜測;如果你的排期需要扣除假期,請在結果上自行減去。

為什麼用 UTC 計算?

純日期沒有時區概念。用 UTC 計算可以避開夏令時切換——本地某一天可能是 23 或 25 小時,簡單的除法會四捨五入到錯誤的一天。

常見期限速查表

工作與手續裡最常遇到的日期區間,以及決定具體是哪一天的計數口徑。

場景 常見期限 計算口徑
30 / 60 / 90 天賬期 30、60、90 個自然日 從開票日或交付日起算,先確認起算日當天是否計入
試用期 / 通知期 1–6 個月 按月推進而非固定天數,月末會收斂(1 月 31 日 + 3 個月 = 4 月 30 日)
簽證或免簽停留 90 個自然日 通常從入境次日起算,離境日一般不計入
孕期 40 周 / 280 天 從末次月經首日算到預產期
退貨 / 保固窗口 7、14 或 30 天 先看清條款寫的是自然日還是工作日
金融結算 T+1 / T+2 1–2 個工作日 週末與當地法定假日會被跳過,日曆日期會順延
契約「90 天內」 90 個自然日 需寫明起算日是否計入,爭議通常發生在這裡

契約僅寫「天」時,應按自然日理解,並務必寫清起算日。

無歧義的日期寫法

同樣八個數字可能代表兩個不同日期,以下幾種寫法值得辨識。

寫法 範例 常見場景
ISO 8601 2026-10-26 介面、資料庫、檔案名稱、國際標準
RFC 3339(帶時間) 2026-10-26T14:30:00+08:00 帶時區的 Web 介面與日誌
日 / 月 / 年 26/10/2026 英國、歐洲多數國家、澳洲、拉美
月 / 日 / 年 10/26/2026 美國、菲律賓,最容易與上一種混淆
中文寫法 2026年10月26日 中文合同、票據、公文
英文書寫 26 October 2026 英文合同與證書,月份用文字最穩

跨境場景優先使用 ISO 8601 或把月份寫成文字;純數字的 DD/MM 與 MM/DD 最容易出錯。

常見問題

開始日期和結束日期會包含在天數裡嗎?

工具給出的是經過的天數:1 月 1 日到 1 月 2 日是 1 天,同一天則是 0 天。如果你需要「首尾都算」(比如酒店住宿晚數),把結果加 1 即可。

閏年和 2 月 29 日怎麼處理?

2 月 29 日可以作為輸入,加一年會落到下一個平年的 2 月 28 日。年齡計算中,2 月 29 日出生的人在平年按 2 月 28 日過生日。

能算很久以前或很遠的未來嗎?

公元 1 年到 9999 年之間的日期都可以計算,歷史日期和長期規劃同樣適用,結果基於公曆(格里高利曆)推算。

可以用來排工作計劃嗎?

可以用於周一至周五的工作日計數。由於各地節假日不同,工具不會自動扣除節日,請按自己的假期表調整結果。

輸入的數據會上傳嗎?

不會。頁面只有前端腳本,日期不會離開瀏覽器,也不需要賬號或伺服器存儲。

年齡、週年與 2 月 29 日

不同場景對「幾歲」的定義不同,先選對口徑。

01

周歲

從生日當天起算,到下一個生日前一天為整 N 歲。2000-05-15 出生,2018-05-15 當天滿 18 歲,而不是元旦。

02

虛歲

傳統算法出生即 1 歲,每逢新年加 1 歲,因此可能比周歲大一到兩歲。

03

法定年齡

多數地區在生日當天開始即達到法定年齡,少數按出生時刻計算;涉及合同、證件時以當地規定為準。

04

週年與 2 月 29 日

週年按年或按月推進,月末會收斂。2 月 29 日出生者,平年通常按 2 月 28 日紀念,但部分司法轄區按 3 月 1 日。

日曆小史

為什麼「一年」不是正好 365 天,以及 1582 年為什麼會憑空少掉十天。

  1. 公元前 45 年

    儒略曆

    凱撒用太陽曆取代羅馬陰曆,並規定每四年一閏。它每年比回歸年長約 11 分鐘。

  2. 325 年

    尼西亞會議

    教會統一復活節日期,曆法累積的偏差隨後成為宗教與民事問題。

  3. 1582 年

    格里高利曆改革

    教皇格里高利十三世刪掉十天——10 月 4 日之後直接是 10 月 15 日,並加入百年/四百年閏規則。英國及其殖民地到 1752 年才改用。

  4. 1970 年

    Unix 紀元

    1970-01-01 00:00 UTC 成為 Unix 時間的零點。它是一個時刻而非日曆日,所以時間戳必須帶時區。

  5. 1988 年

    ISO 8601

    標準統一了 YYYY-MM-DD 和以週一為一週起點的週數編號,至今用於薪資、物流與專案排期。

今天日常使用的就是格里高利曆;每四年出現的閏年規則,來自 1582 年這次修正。

相關工具

需要的是具體時刻而不是日期?這幾個工具正好互補。