日期差距計算器的工作原理與日曆計算
日期差距計算器是一個實用的工具,讓使用者選擇兩個日期,即可同時得知相差的天數、星期數、月數及年數。此工具採用真實的日曆算法,能自動處理閏年以及大小月等複雜的月份長度變化。
在計算過程中,工具提供以下輸入選項:
- 開始日期:一個日曆日期,預設為當天。
- 結束日期:另一個日曆日期。
- 將結束日亦算作一整天:一個選取方塊,用以調整計算範圍。
當使用者輸入日期後,系統會即時輸出多維度的時間跨度分析:
- 年、月、天:將整段期間拆解為完整的年數、完整的月數,以及剩餘的天數。
- 總天數:兩者之間相隔的總天數。
- 星期數:兩者之間相隔的總星期數。
- 月數:兩者之間相隔的總月數。
- 年數(約):以每年 365.2425 天為基準計算出的近似年數。
邊界情況與日曆進位規則
真實日曆的月份長度不一,且每逢四年便有閏年,這令日期計算存在不少邊界情況。本計算器依循以下規則處理這些特例:
- 月份長度與閏年:計算完全符合真實日曆。例如,若開始日期在目標月份中不存在(如 1 月 31 日加一個月),計算將會落在目標月份的最後一天(即 2 月 28 日或閏年的 2 月 29 日)。
- 日期順序顛倒:若結束日期早於開始日期,計算器不會報錯,而是會自動按時間先後順序進行比較,並顯示提示訊息:「結束日期早於開始日期,已按時間先後順序進行比較。」。
- 輸入清除與重設:若清除結束日期的輸入內容,計算結果將會清空,並顯示提示字句:「選擇開始和結束日期,結果會即時更新。」。
- 無效日期處理:若輸入了不存在的日期,系統會顯示錯誤訊息:「這不是有效的日期。」。
「包含結束日」與「不包含結束日」的差異
在計算日期範圍時,是否將最後一天計入,會直接影響結果。這就是「包含結束日」(Inclusive)與「不包含結束日」(Exclusive)的分別。
預設情況下,計算器採用不包含結束日的算法。若勾選了「將結束日亦算作一整天」,計算器便會將結束日也視為完整的一天,此時每一個輸出結果都會自動增加一天。這種彈性設計適用於不同的生活場景,例如規劃旅行、計算租借期、追蹤專案進度,或是計算自過去某個事件以來所累積的天數。
本機運算與私隱保護
本工具在設計上非常注重數據私隱。所有計算均在你的瀏覽器本機完成。你選擇的日期絕不會上傳至 BroBroGo,所有運算過程均不會離開你的裝置。
常見問題
月數和年數是如何計算的?
按真實日曆推算:先計算滿幾年,再計算滿幾個月,餘下的天數則算作日數。大小月和閏年均會自動處理;若起始日在目標月份不存在——例如 1 月 31 日加一個月——則會落在 2 月的最後一天,這與銀行及試算表的慣例一致。
需要將結束日計算在內嗎?
這取決於你計算的內容。星期一至五相隔 4 天,但若是酒店住宿或租借等需要覆蓋首尾兩天的情況,則為 5 天。若最後一天本身亦須計入,請勾選此選項,所有結果便會增加一天。
若結束日期早於開始日期會怎樣?
不會出錯——計算器會自動按時間先後順序進行比較,並在狀態列中提示。這亦代表你可以倒過來計算,例如某個過去事件至今已累積了多少天。