日期時間計算器
把日曆上最容易算錯的日期題交給它:給某個日期加減年、月、周、天,算兩個日期之間隔了多少天和工作日,或者用生日算出精確到年月日的年龄與下次生日。閏年和月末自動處理,數據不出瀏覽器。
- 模式
- 加減 · 間隔 · 年龄
- 邊界處理
- 閏年 · 月末
- 隱私
- 100% 本地
- 依賴
- 無
加月時優先保留原來的「日」;目標月份沒有這一天時,自動收斂到該月最後一天(如 1 月 31 日 + 1 個月 = 2 月 28/29 日)。
總天數按兩個日期之間經過的自然日計算;工作日會排除週六和週日。
年齡按整年、整月、整日累計;2 月 29 日出生的人在平年按 2 月 28 日計算。
本次會話
記錄只保存在當前頁面的記憶體裡,重新整理或關閉標籤頁後即消失。
為日常日期問題而做
一個頁面,三種演算法
平時要靠掰手指或翻表格才能算清的日期問題,這裡輸入即得。
任意日期加減
一次完成年、月、周、天的加減,適合算截止日、續費日、提醒日和交付週期。
兩個日期差多少
以總天數、周數以及「年月日」三種口徑給出兩個日期之間的距離。
工作日統計
只算周一至周五,用於排期、SLA計時和請假天數估算。
精確年齡
把生日換算成幾歲幾個月幾天,並給出下次生日的日期與倒計時。
邊界情況自動處理
閏年、月末、週末都由UTC日期運算統一處理,結果不會因夏令時差一天。
打開就能用
免註冊、無上傳,所有計算都在瀏覽器本地完成。
日期運算的規則
幾個關鍵規則,決定計算結果是否與紙質日曆一致。
「加一個月」到底是多少天?
月份天數不固定,所以日期計算以「同一天」為錨點: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 日
不同場景對「幾歲」的定義不同,先選對口徑。
周歲
從生日當天起算,到下一個生日前一天為整 N 歲。2000-05-15 出生,2018-05-15 當天滿 18 歲,而不是元旦。
虛歲
傳統算法出生即 1 歲,每逢新年加 1 歲,因此可能比周歲大一到兩歲。
法定年齡
多數地區在生日當天開始即達到法定年齡,少數按出生時刻計算;涉及合同、證件時以當地規定為準。
週年與 2 月 29 日
週年按年或按月推進,月末會收斂。2 月 29 日出生者,平年通常按 2 月 28 日紀念,但部分司法轄區按 3 月 1 日。
日曆小史
為什麼「一年」不是正好 365 天,以及 1582 年為什麼會憑空少掉十天。
-
公元前 45 年
儒略曆
凱撒用太陽曆取代羅馬陰曆,並規定每四年一閏。它每年比回歸年長約 11 分鐘。
-
325 年
尼西亞會議
教會統一復活節日期,曆法累積的偏差隨後成為宗教與民事問題。
-
1582 年
格里高利曆改革
教皇格里高利十三世刪掉十天——10 月 4 日之後直接是 10 月 15 日,並加入百年/四百年閏規則。英國及其殖民地到 1752 年才改用。
-
1970 年
Unix 紀元
1970-01-01 00:00 UTC 成為 Unix 時間的零點。它是一個時刻而非日曆日,所以時間戳必須帶時區。
-
1988 年
ISO 8601
標準統一了 YYYY-MM-DD 和以週一為一週起點的週數編號,至今用於薪資、物流與專案排期。
今天日常使用的就是格里高利曆;每四年出現的閏年規則,來自 1582 年這次修正。
相關工具
需要的是具體時刻而不是日期?這幾個工具正好互補。