Công cụ này làm gì?
Công cụ này chuyển đổi một ngày giữa lịch Julius (ra đời năm 45 TCN, cứ năm nào chia hết cho 4 là năm nhuận) và lịch Gregory (cải cách năm 1582, bỏ bớt ba ngày nhuận sau mỗi 400 năm). Bạn chỉ cần nhập một ngày theo một loại lịch, công cụ sẽ trả về ngày tương ứng theo lịch còn lại. Đây là phép chuyển đổi lịch thiên văn/lịch phương Tây thuần túy và áp dụng giống hệt nhau ở mọi nơi — không phụ thuộc vào quốc gia hay khu vực nào.
Cách sử dụng
Hãy chọn lịch nguồn (loại lịch mà ngày bạn nhập đang sử dụng); kết quả sẽ được trả về theo loại lịch còn lại. Chọn kỷ nguyên (CN/SCN hoặc TCN), sau đó nhập năm, tháng và ngày. Công cụ sẽ cho biết kỷ nguyên, năm, tháng và ngày sau khi chuyển đổi, kèm theo Số ngày Julius (JDN) trung gian và độ lệch ngày (lịch Gregory đi trước lịch Julius bao nhiêu ngày tại thời điểm đó).
Giải thích công thức
Cách chuyển đổi chính xác và gọn gàng nhất là đi qua JDN — một số đếm ngày dạng số nguyên, độc lập với mọi loại lịch. Bước A chuyển (năm, tháng, ngày) của lịch nguồn thành JDN bằng các công thức số nguyên tiêu chuẩn (một biến thể cho lịch Julius và một biến thể cho lịch Gregory). Bước B chuyển JDN đó sang loại lịch còn lại.
Lịch Gregory sang JDN:
$$\text{JDN} = D + \left\lfloor\frac{153m+2}{5}\right\rfloor + 365y + \left\lfloor\frac{y}{4}\right\rfloor - \left\lfloor\frac{y}{100}\right\rfloor + \left\lfloor\frac{y}{400}\right\rfloor - 32045$$Lịch Julius sang JDN:
$$\text{JDN} = D + \left\lfloor\frac{153m+2}{5}\right\rfloor + 365y + \left\lfloor\frac{y}{4}\right\rfloor - 32083$$Tất cả phép chia đều là phép chia làm tròn xuống (floor), và các năm TCN dùng cách đánh số thiên văn: năm thiên văn bằng 1 - B với năm B TCN (1 TCN = 0, 45 TCN = -44), nhờ vậy việc chuyển qua lại qua năm 0 luôn chính xác tuyệt đối.
Ví dụ minh họa
Lịch Gregory ngày 15-06-1582 SCN. Với Yastro = 1582, công thức Gregory-sang-JDN cho ra \(\text{JDN} = 2299039\). Chuyển JDN này sang lịch Julius ta được ngày 05-06-1582. Vậy ngày 15 tháng 6 năm 1582 theo lịch Gregory tương ứng với ngày 5 tháng 6 năm 1582 theo lịch Julius — khi đó lịch Gregory đi trước lịch Julius 10 ngày, đúng với cuộc cải cách tháng 10 năm 1582 (dayDifference = +10).
Câu hỏi thường gặp
Có năm 0 hay không? Không. Theo hệ kỷ nguyên, ngay sau năm 1 TCN là năm 1 SCN. Trong tính toán nội bộ, chúng tôi dùng cách đánh số thiên văn với năm 0 = 1 TCN, giúp phép tính được liên tục.
Vì sao gọi là "ngoại suy" (proleptic)? Các phép chuyển đổi này áp dụng quy tắc của mỗi loại lịch cho mọi ngày, kể cả những ngày trước khi loại lịch đó thực sự tồn tại trong lịch sử. Chúng không phản ánh việc mỗi quốc gia áp dụng cải cách Gregory vào những thời điểm khác nhau.
Độ lệch lớn dần ra sao theo thời gian? Khoảng 0 ngày quanh năm 200, +10 ngày vào năm 1582, +13 ngày trong giai đoạn 1900–2099, và +14 ngày kể từ năm 2100 trở đi.