🏪 小工具便利店

📅 日期/年齡計算機

輸入生日算實歲跟距離下次生日還有幾天,或算兩個日期之間相差多久。

廣告・橫幅 728×90

🎂 年齡計算

距離下次生日
總共活了幾天

📆 日期差計算

廣告・大型矩形 336×280

📖 使用說明

  1. 年齡計算:在上半部「🎂 年齡計算」點選你的生日日期,輸入後會自動即時算出結果,不用按任何按鈕。
  2. 看懂年齡結果:大數字是你目前的實際歲數;下方表格會列出「距離下次生日」還有幾天(當天生日會顯示「今天生日!🎉」),以及「總共活了幾天」——從出生日算到今天的總天數。
  3. 日期差計算:在下半部「📆 日期差計算」分別選擇開始日期與結束日期(頁面載入時預設都是今天),一樣是輸入後立即算出結果。
  4. 看懂日期差結果:大數字是兩個日期之間相差的天數,下方小字會換算成約幾週、約幾個月方便估算;如果結束日期選得比開始日期早,天數仍會以正值顯示,並會註明「結束日期早於開始日期」提醒你。
小提醒:這裡算的是「實歲」(依實際出生年月日精算,還沒過生日就不加一歲),不是傳統習俗的「虛歲」(出生即算 1 歲、每逢過年就加 1 歲);日期差的計算也是用瀏覽器內建的日期功能推算,已經正確處理閏年 2 月 29 日與每月天數差異,不用擔心誤差。

📖 深入了解:日期計算為什麼容易出錯?

閏年與每月天數不一致,是最常見的誤差來源

如果自己手動算日期差或年齡,很容易忽略兩個細節:一是閏年,二是每個月天數不一樣(28、29、30、31 天交錯)。例如「今年 2 月」到底是 28 天還是 29 天,取決於年份是否為閏年(西元年能被 4 整除、但能被 100 整除卻不能被 400 整除的年份不算閏年,例如 1900 年不是閏年,但 2000 年是);如果用「每個月都當 30 天」這種簡化算法去估算,累積幾個月下來誤差就會越來越大。這個工具完全不用自己拆解年月日相減,而是把兩個日期都轉換成 JavaScript 的 Date 物件,再直接相減得到毫秒差,最後除以一天的毫秒數(86400000)換算回天數——這個做法是直接依賴瀏覽器內建的日曆換算邏輯,閏年、每月天數不同這些細節都已經被正確處理,不需要另外寫規則去判斷閏年。

年齡計算:「還沒過生日」的判斷邏輯

計算實歲最容易犯的錯誤,是只用「今年 − 出生年」相減,忽略了「今年生日到了沒」這件事。例如 1995 年 8 月 20 日出生的人,在 2026 年 3 月時還沒過今年的生日,這時候如果只算 2026 − 1995 = 31 歲,其實是多算了一歲,正確答案要先確認「今天的月份日期」是否已經到達或超過「生日的月份日期」,沒到的話要再減 1,才是準確的實歲。這個工具的程式邏輯正是這樣處理的:先算出年份差,再比對月份與日期,如果今年的生日還沒到,就把年齡再減 1,這也是為什麼結果顯示的是精算過的「實歲」,而不是概略估計值。

實際計算範例

假設生日是 2000 年 2 月 29 日(閏年才有的日期),計算到 2026 年 8 月 8 日:先算年份差 2026 − 2000 = 26,再看今天(8 月 8 日)有沒有超過生日的月日(2 月 29 日)——已經超過了,所以維持 26 歲,不需要再減 1。距離下次生日的天數,則是用「今年(或明年,如果今年的生日已經過了)的 2 月 29 日」減去今天的天數差;不過要注意,如果今年不是閏年,2 月就沒有 29 日,這時候瀏覽器的日期物件處理方式是自動把日期「進位」到 3 月 1 日,這是 JavaScript Date 物件本身的行為,也是為什麼 2 月 29 日出生的人,非閏年查到的「生日」實際上會落在 3 月 1 日。

日期差計算的四捨五入與正負號處理

下半部「日期差計算」是把結束日期減開始日期,如果選的結束日期比開始日期早,數學上算出來會是負數,但工具會用絕對值顯示天數(一律顯示正數),並在下方加註「結束日期早於開始日期」提醒你順序反了,避免你誤以為工具算錯。天數換算成週數是用無條件捨去(例如 10 天會顯示 1 週,不會四捨五入成 2 週),換算成月數則是用平均每月 30.44 天(365.25 天 ÷ 12 個月)概算,所以月數是約略值,僅供估算參考,不是精確的月曆月份差。

❓ 常見問題

這裡算出來的歲數是實歲還是虛歲?

是實歲,也就是依照確切出生年月日精算,還沒過今年生日就不會加一歲的算法。台灣傳統習俗常用的「虛歲」(出生即算 1 歲,每逢過農曆年就加 1 歲)不是這個工具的計算方式,兩者會有 1 到 2 歲的落差是正常的。

2 月 29 日出生的人,在非閏年要怎麼算生日?

工具背後使用的是 JavaScript 內建的 Date 物件,如果指定的年份沒有 2 月 29 日,日期會自動被進位成 3 月 1 日來處理,所以在非閏年查詢時,距離下次生日的計算會以 3 月 1 日為基準,這是瀏覽器日期功能本身的行為,不是工具算錯。

選了結束日期比開始日期早,會顯示負數天數嗎?

不會顯示負數,天數一律用絕對值呈現(例如相差 5 天就顯示「5 天」),但下方小字會加註「結束日期早於開始日期」,提醒你目前選擇的順序是反過來的,方便你確認是否選錯欄位。

「總共活了幾天」跟「約幾個月」是精確數字嗎?

「總共活了幾天」是精確的天數,直接用毫秒差換算,沒有誤差。但日期差計算裡的「約幾個月」是用平均每月 30.44 天概算出來的估計值,因為每個月實際天數不同(28–31 天),這個數字只能當作大概參考,不是精確對應到月曆上的月份數。

不輸入生日或日期,畫面會顯示什麼?

年齡計算的欄位如果沒選日期,結果不會出現(維持空白,不會跳出錯誤訊息)。日期差計算則是頁面載入時就會自動把開始日期跟結束日期都預設成今天,所以一開啟頁面就會看到「0 天」的結果,不需要手動輸入才有畫面。

廣告・橫幅 728×90