查日子係星期幾計算機(任何日期)
揀任何一個日期(由公元 1 年到公元 9999 年),呢個工具即時話你聽嗰日係星期一、二、三、四、五、六定日,附帶閏年標示、工作日/週末分類,同距今相差幾多日 — 用嚟查自己嘅出世日子係星期幾、結婚紀念日、又或者重大歷史事件,都好夾。
請輸入有效嘅公曆日期(1–9999 年)。
係星期幾
星期五
星期軌
係咪週末
閏年
公式
採用 Tomohiko Sakamoto 算法: h = (y + ⌊y/4⌋ − ⌊y/100⌋ + ⌊y/400⌋ + t[m−1] + d) mod 7 當中 t = [0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4],月份 m < 3 時將年份 y 減 1。 結果:0 = 星期日、1 = 星期一 … 6 = 星期六(本工具按 ISO 8601 重新編碼為 1 = 星期一 … 7 = 星期日)。
- · 範圍:公元 1 年至公元 9999 年;採用「proleptic Gregorian」公曆(即將現行公曆規則向前推及格里曆 1582 年之前),方便對比歷史事件,但實際歷史日子可能用過儒略曆(Julian)。
- · 閏年規則:(年 % 4 = 0 且 年 % 100 ≠ 0) 或 年 % 400 = 0;所以 1900 年並非閏年,但 2000 年係。
- · 本工具用 Sakamoto 算法純算術計算,唔依賴瀏覽器 Date 物件嘅時區或時刻,因此跨時區結果一致。
- · 距今日數會按用戶本機 UTC 日期計算,過咗子夜後同步更新;不顯示時分秒。
- · 英國/英聯邦於 1752 年 9 月由儒略曆改格里曆,1752-09-02 之後直接跳到 1752-09-14;俄羅斯則晚至 1918 年先採用。所以查 1582-1918 期間嘅歷史事件,要先確認原始日子用邊套曆法。
- · 資料來源:T. Sakamoto, "comp.lang.c" 1993;Zeller (1882);ISO 8601:2019 §4.2「日期之表示法」。
常見問題
我出世嗰日係星期幾?
揀返你嘅出生日(西曆,例如 1990-08-15),上面個大字就會話你聽 — 連帶「距今幾多日」嘅小字。如果你係 1752 年 9 月之前出世(基本上唔關香港人事),要小心當時用嘅可能係儒略曆而非公曆;本工具一律以現代公曆(proleptic Gregorian)計算,方便對齊近代事件。
Sakamoto 算法準唔準?同 JavaScript 嘅 Date 物件結果一樣咩?
Sakamoto 算法用純算術,幾乎係教科書級寫法,喺整個 proleptic Gregorian 範圍同 JavaScript 嘅 Date.UTC().getUTCDay() 完全一致 — 我哋亦寫咗自動測試覆蓋連續 200 日做交叉驗證。優點係唔受瀏覽器時區、夏令時間影響,亦唔需要 Date 物件,例如喺嵌入式系統或 Node 服務都用得。
工具話 1900 年唔係閏年,但 2000 年係 — 點解?
公曆閏年規則由教宗格里高利十三世 1582 年頒布:被 4 整除嘅年通常係閏年,但被 100 整除而不被 400 整除嘅就跳過。1900 ÷ 100 = 19,不能被 400 整除,所以唔係閏;2000 ÷ 400 = 5,所以係閏。呢條規則嘅目的係令日曆同地球公轉週期保持同步 — 太陽年平均約 365.2422 日,純 365.25 嘅儒略曆會喺幾百年後偏離。
為何「星期一」喺工具上係 1,而 JavaScript Date 嘅 getDay() 又話星期日係 0?
ISO 8601(國際日期標準)規定一週由星期一開始:1 = 星期一、2 = 星期二 …… 7 = 星期日,本工具跟呢個慣例。JavaScript 嘅 Date.getDay() 沿用美式慣例 0 = 星期日 …… 6 = 星期六。國際商務、銀行(包括香港、中國大陸、歐洲)多數用 ISO 8601 計周次,而 ISO 週日就一定要喺 1–7 區間,1 = 週一。
同類工具
年齡計算機
由出生日期計算實歲、虛歲、總日數同距下次生日仲有幾耐。
日期相差計算機
輸入兩個日期,即時計到相差日數、工作天、週末、年月日同總週數/月數。
時區換算
揀本地同對方城市,即時換算指定時間嘅時區差。
日期加減計算機
由一個日期出發,加或減指定嘅年、月、星期、日,即時得到新日期同星期幾。
工作天計算機
計算兩個日期之間嘅工作天數,自動撇除星期六、日。亦支援由起點加 N 個工作天求結束日。
預產期計算機
由最後一次月經日期(LMP)用 Naegele 法則推算預產期,列出現時孕周、孕期同三個三月期分界。
工時計算機(上班/放工/午飯)
輸入上班同放工時間、午飯/休息分鐘數,即時計到當日工作幾多個鐘同薪金;自動處理通宵更(過夜)。
一年第幾日/第幾週計算機
揀一個日期,即時知道係該年第幾日(1–366)、ISO 8601 第幾週、星期幾、距離年初/年尾幾多日。
Unix 時間戳 ↔ 日期轉換
輸入 Unix 時間戳(秒或毫秒)即時轉成 UTC、香港時間(HKT)、RFC 1123 HTTP 日期;亦可由日期反推時間戳,適合 debug log、API 同資料庫。
復活節日期計算機
輸入年份,用 Computus 演算法計復活節主日,連帶聖灰禮儀日、棕枝主日同耶穌受難日。
月相計算機
輸入任何日期,立即計到當日月相(新月/上弦/滿月/下弦等)、月齡同照明百分比。
生肖同虛歲計算機
輸入出生日期,計算十二生肖、五行天干地支、本命年同虛歲。
西方星座計算機
輸入出生月日,即時知道你嘅西方星座(白羊、金牛、雙子…)、四元素、性質同對宮星座。
生日石(誕生石)對照表
揀出生月份,即時知道對應嘅現代誕生石、傳統誕生石、誕生花,配埋星座範圍同色卡,方便揀首飾或生日禮物。
儒略日 (Julian Day) 計算機
將公曆日期換算成儒略日 (JDN) 或修改儒略日 (MJD),常用於天文觀測、史學同跨曆法日期運算。
ISO 8601 週次計算機
輸入任何日期,按 ISO 8601 標準(週一為首日、首週含 1 月 4 日)計到 ISO 年份、週次(W01–W53)同星期幾。
時間相差計算機(時分秒)
輸入兩個時間(HH:MM[:SS]),即時計到相差幾多個鐘、分鐘同秒,支援跨夜班同小數時數。
香港法定年假計算機
輸入受僱年資,根據《僱傭條例》第 41AA 條即時計到法定有薪年假日數。
半歲生日 (Half-Birthday) 計算機
輸入出生日期,計到下一個半歲生日係邊日、距今幾多日,同埋你嘅半歲年齡(例如 33.5 歲)。
日照時間 (Sunrise/Sunset) 計算機
輸入緯度、經度同日期,用 NOAA 太陽公式計到當地嘅日出、日落、太陽中天同總日照時間。