在線即時計算器 · 純前端本地秒算 · 零數據上傳

⏱️ 生日星期計算機

專業免費的 生日星期計算機。純前端本機毫秒級計算、零資料上傳、極致隱私保護。提供詳細公式推導、實例示範與常見問答。

即時推算結果 (Computed Output)
Monday 星期
專業公認計算模型,即時運算完畢
📜 計算歷史記錄 (試算軌跡)
尚無歷史記錄,每次點擊「計算」將在此留下試算軌跡...

這個計算機能做什麼

你有沒有好奇過,自己出生那天究竟是星期幾——是悠閒的星期天,還是忙碌的星期一?這款「生日星期計算機」會準確告訴你出生日期是星期幾,還會額外幫你算出下一次生日會落在星期幾。只要是西曆(格里曆)上的日期,它通通都能算。

使用方法

輸入你的出生年份,從下拉選單中選擇出生月份,再填入出生日。按下計算,上方的重點區塊會顯示你出生那天是星期幾,下方表格則會列出你即將到來的生日是星期幾,方便你提前安排慶生。

公式原理

本工具採用蔡勒公式(Zeller's congruence),這是一套用來推算任何日期星期的經典演算法。在計算時,一月和二月會被視為前一年的「第 13 個月」與「第 14 個月」。公式會算出一個數值 h,其中 0 代表星期六、1 代表星期日,依此類推。我們再將結果對應回大家熟悉的「週日到週六」順序來顯示。由於整個過程只用到整數運算,因此結果完全精確,不會有任何誤差累積。

h = ≤ft( D + ≤ft\lfloor ((13(m+1)) ÷ (5)) \right\rfloor + K + ≤ft\lfloor ((K) ÷ (4)) \right\rfloor + ≤ft\lfloor ((J) ÷ (4)) \right\rfloor + 5J \right) \bmod 7
where ≤ft{ \begin{aligned} D &= Birth Day \\ m &= Month\ \ (Jan,Feb \to 13,14 of prior year) \\ Y &= Birth Year\ (adjusted) \\ K &= Y \bmod 100, J = ≤ft\lfloor Y/100 \right\rfloor \end{aligned} \right.

實際範例

以 1990 年 7 月 15 日為例。此時 m = 7、d = 15、年份為 1990,所以 k = 90、j = 19。接著

h =≤ft(15 + ≤ft\lfloor 13· 8/5 \right\rfloor + 90 + ≤ft\lfloor 90/4 \right\rfloor + ≤ft\lfloor 19/4 \right\rfloor + 5· 19\right) \bmod 7 = (15 + 20 + 90 + 22 + 4 + 95) \bmod 7 = 246 \bmod 7 = 1
對應到星期日。換句話說,1990 年 7 月 15 日出生的人,是在星期日出生的。

變數定義

  • D — 月份的日期。 日期日數,完全按照書寫方式,從 1 到 31。D 不會進行任何調整。
  • m — 調整後的月份編號。 三月 = 3 到十二月 = 12 按原樣使用。一月和二月是特殊情況: 它們分別被視為上一年的第 13 和 14 月。這是因為齊勒公式將三月視為一年的開始,這樣可以將閏日保持在週期的末尾。
  • Y — 調整後的年份。 如果日期在一月或二月,從日曆年份中減去 1(因為在此方案中這些月份屬於前一年)。其他所有月份保持原始年份。
  • K — 世紀年份。 K = Y \bmod 100,即調整後年份的最後兩位數字。對於 2024 年這是 24;對於 1999 年這是 99。
  • J — 零起始世紀。 J = \lfloor Y / 100 \rfloor,世紀編號不進位。對於 2024 年這是 20;對於 1999 年這是 19。
  • h — 結果日期代碼。 組合所有項後模 7 的餘數,給出 0–6 的值,該值使用上表的結果代碼映射到一週的某一天。

更多計算示例

示例 1 — 一月日期(顯示月份和年份偏移)

取 2000 年 1 月 15 日。因為月份是一月,設 m = 13 並使用前一年,所以調整後的年份是 Y = 1999。然後 D = 15,K = 1999 \bmod 100 = 99,以及 J = \lfloor 1999/100 \rfloor = 19。

h = ≤ft(15 + ≤ft\lfloor \tfrac{13(13+1)}{5} \right\rfloor + 99 + ≤ft\lfloor \tfrac{99}{4} \right\rfloor + ≤ft\lfloor \tfrac{19}{4} \right\rfloor + 5 · 19 \right) \bmod 7

樓函數項為 \lfloor 182/5 \rfloor = 36、\lfloor 99/4 \rfloor = 24 和 \lfloor 19/4 \rfloor = 4。求和:15 + 36 + 99 + 24 + 4 + 95 = 273。然後 273 \bmod 7 = 0,所以 h = 0 → 星期六。2000 年 1 月 15 日確實是 星期六。

示例 2 — 閏日生日(2000 年 2 月 29 日)

對於 2000 年 2 月 29 日,二月也被偏移:m = 14 調整後的年份是 Y = 1999,給出 K = 99、J = 19 和 D = 29。

h = ≤ft(29 + ≤ft\lfloor \tfrac{13(14+1)}{5} \right\rfloor + 99 + ≤ft\lfloor \tfrac{99}{4} \right\rfloor + ≤ft\lfloor \tfrac{19}{4} \right\rfloor + 5 · 19 \right) \bmod 7

這裡 \lfloor 195/5 \rfloor = 39、\lfloor 99/4 \rfloor = 24、\lfloor 19/4 \rfloor = 4。求和:29 + 39 + 99 + 24 + 4 + 95 = 290,290 \bmod 7 = 3,所以 h = 3 → 星期二。2000 年 2 月 29 日落在 星期二。請注意,2000 年是閏年,因為它能被 400 整除。

示例 3 — 最近的日期(2023 年 7 月 4 日)

對於 2023 年 7 月 4 日,七月是常規月份,所以 m = 7 不改變年份:Y = 2023、D = 4、K = 23、J = 20。

h = ≤ft(4 + ≤ft\lfloor \tfrac{13(7+1)}{5} \right\rfloor + 23 + ≤ft\lfloor \tfrac{23}{4} \right\rfloor + ≤ft\lfloor \tfrac{20}{4} \right\rfloor + 5 · 20 \right) \bmod 7

樓函數值為 \lfloor 104/5 \rfloor = 20、\lfloor 23/4 \rfloor = 5、\lfloor 20/4 \rfloor = 5。求和:4 + 20 + 23 + 5 + 5 + 100 = 157,157 \bmod 7 = 3,所以 h = 3 → 星期二。2023 年獨立日是 星期二。

使用注意事項與精準校對原則(6 大核心守則)

📐 1. 嚴格對齊輸入量綱與單位

輸入各項數值時請務必確認量綱(例如小時、天數、金額、百分比),避免單位不匹配引發推算偏差。

🔒 2. 純前端本機毫秒級隱私保障

所有計算邏輯 100% 在您的終端瀏覽器內完成,資料絕不上傳伺服器,嚴格守護商業與個人隱私。

📊 3. 符合公認學術與產業計算模型

演算法嚴格遵循國際通用數學公式與標準計算模型,經多重情境交叉核對,數值嚴密精確。

📋 4. 一鍵複製與免登入 PDF 匯出

支援一鍵複製推算結果字串至剪貼簿,亦可直接點擊列印按鈕輸出純淨 PDF 工作報表。

🔄 5. 多情景敏感度動態對比

建議針對極端值與多組預期情景分別試算,觀察輸出數據的波動區間,輔助做出更穩健的決策。

🛡️ 6. 專業諮詢與日常參考免責聲明

本工具運算結果供日常排程、學業研習與事前參考之用,如涉及重大法規或投資決策請諮詢持證專家。

常見問題 (FAQ)

很久以前的日期也能算嗎?
可以,任何「外推格里曆」上的日期都能計算。不過,1582 年曆法改革之前的日期,可能會與當時使用儒略曆的歷史記載有所出入。
閏年怎麼處理?
蔡勒公式透過模運算自動處理閏年,所以 2 月 29 日這類日期也能正確算出。
如果今年的生日已經過了怎麼辦?
若你今年的生日已經過去,「下次生日」的結果會自動往後推算到明年。