Kết nối qua MCP →

Nhập phép tính

Công thức

Quảng cáo

Kết quả

Bạn sinh vào
Tuesday
thứ trong tuần
Your next birthday (2027) Monday

Công Cụ Này Làm Gì?

Bạn có bao giờ tò mò mình sinh vào thứ mấy trong tuần — một ngày Chủ Nhật thảnh thơi hay một ngày thứ Hai tất bật? Công cụ tính thứ trong tuần của ngày sinh này sẽ cho bạn biết chính xác bạn chào đời vào thứ mấy, và như một phần quà thêm, nó còn cho biết sinh nhật sắp tới của bạn rơi vào thứ nào. Công cụ hoạt động với mọi ngày theo lịch dương (lịch Gregory).

Lịch có ngày sinh được tô sáng chỉ tới nhãn thứ trong tuần
Công cụ tính ánh xạ mọi ngày sinh thành thứ trong tuần.

Cách Sử Dụng

Nhập năm sinh, chọn tháng sinh từ danh sách thả xuống và điền ngày sinh của bạn. Bấm tính toán. Khung kết quả nổi bật sẽ hiển thị thứ bạn chào đời, còn bảng bên dưới cho biết thứ của sinh nhật sắp tới — để bạn có thể bắt đầu lên kế hoạch tiệc tùng.

Giải Thích Công Thức

Công cụ sử dụng đồng dư Zeller (Zeller's congruence), một thuật toán kinh điển để xác định thứ trong tuần của bất kỳ ngày nào. Tháng Một và tháng Hai được tính như tháng 13 và 14 của năm trước đó. Công thức tính ra giá trị h, trong đó 0 = thứ Bảy, 1 = Chủ Nhật, và cứ thế tiếp tục. Sau đó kết quả được chuyển đổi sang thứ tự quen thuộc Chủ Nhật–thứ Bảy để hiển thị. Vì chỉ dùng phép toán số nguyên thuần túy nên kết quả luôn chính xác tuyệt đối, không bao giờ sai lệch.

$$\begin{gathered} h = \left( D + \left\lfloor \frac{13(m+1)}{5} \right\rfloor + K + \left\lfloor \frac{K}{4} \right\rfloor + \left\lfloor \frac{J}{4} \right\rfloor + 5J \right) \bmod 7 \\[1.5em] \text{where}\quad \left\{ \begin{aligned} D &= \text{Birth Day} \\ m &= \text{Month}\ \ (\text{Jan,Feb} \to 13,14\text{ of prior year}) \\ Y &= \text{Birth Year}\ (\text{adjusted}) \\ K &= Y \bmod 100,\quad J = \left\lfloor Y/100 \right\rfloor \end{aligned} \right. \end{gathered}$$
Sơ đồ thể hiện các biến d, m, k, j của đồng dư Zeller đưa vào kết quả chia dư cho 7
Đồng dư Zeller chia ngày thành các thành phần rồi kết hợp và lấy dư cho 7.

Ví Dụ Minh Họa

Lấy ngày 15 tháng 7 năm 1990. Ở đây \(m = 7\), \(d = 15\), năm = 1990 nên \(k = 90\) và \(j = 19\). Khi đó

$$h = (15 + \lfloor 13 \cdot 8/5 \rfloor + 90 + \lfloor 90/4 \rfloor + \lfloor 19/4 \rfloor + 5 \cdot 19) \bmod 7 = (15 + 20 + 90 + 22 + 4 + 95) \bmod 7 = 246 \bmod 7 = 1$$

tức là Chủ Nhật. Vậy người sinh ngày 15 tháng 7 năm 1990 chào đời vào một ngày Chủ Nhật.

Định Nghĩa Biến

  • \(D\) — Ngày trong tháng. Ngày lịch chính xác như đã viết, từ 1 đến 31. Không bao giờ áp dụng điều chỉnh cho \(D\).
  • \(m\) — Số tháng đã điều chỉnh. Tháng 3 đến tháng 12 được sử dụng nguyên vẹn. Tháng 1 và tháng 2 đặc biệt: chúng được coi là tháng 13 và tháng 14 của năm trước. Điều này là vì công thức Zeller coi tháng 3 là đầu năm, giữ cho ngày nhuận ở cuối chu kỳ.
  • \(Y\) — Năm đã điều chỉnh. Nếu ngày tháng rơi vào tháng 1 hoặc tháng 2, trừ 1 từ năm lịch (vì những tháng đó thuộc năm trước trong sơ đồ này). Tất cả các tháng khác giữ nguyên năm gốc.
  • \(K\) — Năm của thế kỷ. \(K = Y \bmod 100\), tức là hai chữ số cuối cùng của năm đã điều chỉnh. Đối với 2024 đây là 24; đối với 1999 đây là 99.
  • \(J\) — Thế kỷ dựa trên số không. \(J = \lfloor Y / 100 \rfloor\), số thế kỷ không làm tròn lên. Đối với 2024 đây là 20; đối với 1999 đây là 19.
  • \(h\) — Mã ngày kết quả. Số dư modulo 7 sau khi kết hợp tất cả các số hạng, cho ra giá trị 0–6 ánh xạ tới một ngày trong tuần bằng cách sử dụng bảng mã kết quả ở trên.

Thêm Ví Dụ Đã Tính Toán

Ví Dụ 1 — Một ngày tháng Giêng (hiển thị sự dịch chuyển tháng và năm)

Lấy 15 tháng Giêng 2000. Vì tháng là tháng Giêng, hãy đặt \(m = 13\) và sử dụng năm trước, vì vậy năm đã điều chỉnh là \(Y = 1999\). Sau đó \(D = 15\), \(K = 1999 \bmod 100 = 99\), và \(J = \lfloor 1999/100 \rfloor = 19\).

$$h = \left(15 + \left\lfloor \tfrac{13(13+1)}{5} \right\rfloor + 99 + \left\lfloor \tfrac{99}{4} \right\rfloor + \left\lfloor \tfrac{19}{4} \right\rfloor + 5 \cdot 19 \right) \bmod 7$$

Các số hạng lấy phần nguyên là \(\lfloor 182/5 \rfloor = 36\), \(\lfloor 99/4 \rfloor = 24\), và \(\lfloor 19/4 \rfloor = 4\). Cộng lại: \(15 + 36 + 99 + 24 + 4 + 95 = 273\). Sau đó \(273 \bmod 7 = 0\), vì vậy \(h = 0\) → Thứ Bảy. Ngày 15 tháng Giêng 2000 thực sự là một Thứ Bảy.

Ví Dụ 2 — Một ngày sinh nhật nhuận (29 tháng Hai 2000)

Đối với 29 tháng Hai 2000, tháng Hai cũng được dịch chuyển: \(m = 14\) và năm đã điều chỉnh là \(Y = 1999\), cho \(K = 99\), \(J = 19\), và \(D = 29\).

$$h = \left(29 + \left\lfloor \tfrac{13(14+1)}{5} \right\rfloor + 99 + \left\lfloor \tfrac{99}{4} \right\rfloor + \left\lfloor \tfrac{19}{4} \right\rfloor + 5 \cdot 19 \right) \bmod 7$$

Ở đây \(\lfloor 195/5 \rfloor = 39\), \(\lfloor 99/4 \rfloor = 24\), \(\lfloor 19/4 \rfloor = 4\). Cộng lại: \(29 + 39 + 99 + 24 + 4 + 95 = 290\), và \(290 \bmod 7 = 3\), vì vậy \(h = 3\) → Thứ Ba. Ngày 29 tháng Hai 2000 rơi vào một Thứ Ba. Lưu ý rằng 2000 là một năm nhuận vì nó chia hết cho 400.

Ví Dụ 3 — Một ngày gần đây (4 tháng Bảy 2023)

Đối với 4 tháng Bảy 2023, tháng Bảy là một tháng bình thường, vì vậy \(m = 7\) mà không có thay đổi năm: \(Y = 2023\), \(D = 4\), \(K = 23\), \(J = 20\).

$$h = \left(4 + \left\lfloor \tfrac{13(7+1)}{5} \right\rfloor + 23 + \left\lfloor \tfrac{23}{4} \right\rfloor + \left\lfloor \tfrac{20}{4} \right\rfloor + 5 \cdot 20 \right) \bmod 7$$

Các số hạng lấy phần nguyên là \(\lfloor 104/5 \rfloor = 20\), \(\lfloor 23/4 \rfloor = 5\), \(\lfloor 20/4 \rfloor = 5\). Cộng lại: \(4 + 20 + 23 + 5 + 5 + 100 = 157\), và \(157 \bmod 7 = 3\), vì vậy \(h = 3\) → Thứ Ba. Ngày Độc Lập 2023 là một Thứ Ba.

Câu Hỏi Thường Gặp

Công cụ có dùng được cho những ngày xa xưa không? Có, cho mọi ngày theo lịch Gregory ngoại suy (proleptic). Tuy nhiên, các ngày trước cuộc cải cách lịch năm 1582 có thể khác với sử liệu vốn dùng lịch Julius.

Năm nhuận được xử lý ra sao? Đồng dư Zeller tự động xử lý năm nhuận thông qua phép toán đồng dư của nó, nên các ngày 29 tháng 2 vẫn được tính đúng.

Nếu sinh nhật năm nay của tôi đã qua thì sao? Kết quả sinh nhật sắp tới sẽ tự động chuyển sang năm sau nếu sinh nhật của bạn trong năm nay đã trôi qua.

Cập nhật lần cuối: