Công cụ Lịch Ta bên trên hỗ trợ người dùng tra cứu Lịch Âm theo từng ngày, hoặc xem tổng quan trong cả một tháng. Trong mỗi phương án tra cứu đó, mọi người sẽ có những lựa chọn nhập dữ liệu đầu vào:
Sau khi nhập dữ liệu đầu vào, mọi người đã có thể nhấn nút "Tra cứu" tương ứng. Nếu có lỗi nhập chưa đúng, hệ thống sẽ yêu cầu nhập lại. Nếu chưa có dữ liệu Lịch Âm, bảng lịch tháng sẽ hiển thị số 0.
Trong bảng lịch tháng, mọi người có thể bấm vào từng ô để xem cụ thể lịch ngày tương ứng
Lịch Âm truyền thống của người Việt, hay còn được gọi là Lịch Ta, là lịch theo chu kỳ Mặt Trăng kết hợp căn chỉnh theo chu kỳ Mặt Trời. Và cũng vì đây là loại lịch kết hợp nên tên gọi chính xác hơn thực ra là Âm Dương Lịch (Lunisolar Calendar), không chỉ là Âm Lịch
Lịch Âm Việt Nam đóng vai trò quan trọng trong đời sống, vì chu kỳ Mặt Trăng hỗ trợ theo dõi mực nước thủy triều lên xuống hay lên kế hoạch những hoạt động về đêm..., trong khi vẫn tương đối đồng bộ với mùa thời tiết trong năm của lịch Mặt Trời. Ngoài ra Lịch Âm này cũng là cơ sở của văn hóa dân gian, tín ngưỡng, gắn liền với Can Chi, ngũ hành. Nhiều ngày lễ tết, giỗ chạp trong năm được xác định bởi Lịch Âm này.
Về cơ bản, cách tính Lịch Âm của người Việt Nam dựa trên quy luật cộng thêm tháng nhuận mỗi khi cần thiết để đồng bộ lại với lịch Mặt Trời. Nhưng trước khi đi vào tìm hiểu quy luật cụ thể, chúng ta cần hiểu được những khái niệm trong thiên văn học.
Trong thiên văn học, các nhà khoa học thường dùng Hệ tọa độ hoàng đạo (ecliptic coordinate system) để định vị các thiên thể trong Hệ Mặt Trời, với Thiên Cầu là một hình cầu được hình dung bao quanh và lấy Trái Đất làm trung tâm cố định. Nói cách khác, Thiên Cầu chính là bầu trời nhìn từ Trái Đất với hình chiếu các hành tinh lớn nhỏ lên hết trên vòm trời đó.
Thiên Cầu cũng có đường xích đạo (celestial equator) và đường hoàng đạo (ecliptic). Đường xích đạo Thiên Cầu tương ứng với đường xích đạo trên Trái Đất, tạo nên mặt phẳng vuông góc trục Trái Đất tự quay quanh mình; trong khi đó đường hoàng đạo là quỹ đạo Mặt Trời quay quanh Trái Đất trong hệ tọa độ nhân tạo này. Hệ thống kinh độ và vĩ độ của Thiên Cầu dựa trên đường hoàng đạo, còn gọi là hoàng kinh độ và hoàng vĩ độ
Điểm mốc nơi hoàng kinh độ và hoàng vĩ độ đều bằng 0 là giao điểm của đường hoàng đạo và điểm xích đạo, nơi đường hoàng đạo bắt đầu đi lên phía Bắc của đường xích đạo. Điểm mốc này còn được gọi là Xuân Phân (March equinox, hay vernal equinox). Giao điểm đối diện nơi đường hoàng đạo bắt đầu đi xuống phía Nam được gọi là Thu Phân (September equinox, hay autumnal equinox)
Trên đường hoàng đạo của Mặt Trời với hệ tọa độ này, người ta chia làm 24 Tiết Khí (Solar Term). Mỗi điểm bắt đầu một Tiết Khí mới cách nhau 15 độ tính từ Xuân Phân. Trong các Tiết Khí thì có 12 Trung Khí (Major Solar Term) đan xen, mỗi điểm bắt đầu một Trung Khí cách nhau 30 độ và Xuân Phân cũng là Trung Khí đầu tiên. Thu Phân, điểm đối diện với Xuân Phân, là Trung Khí bắt đầu từ hoàng kinh độ 180.
"Sóc" hay "Trăng Non" (New Moon) là thời điểm hội diện, đó là khi Trái Đất, Mặt Trăng và Mặt Trời nằm trên cùng một kinh độ của Thiên Cầu; lúc đó Mặt Trăng nằm giữa Trái Đất và Mặt Trời nên vào ban đêm chúng ta sẽ không nhìn thấy Mặt Trăng (nếu Trái Đất nằm giữa thì đó là thời điểm "Trăng Tròn", Full Moon). Chu kỳ của điểm Sóc là khoảng 29,53059[1] ngày sẽ xuất hiện một lần.
Trong khi đó chu kỳ Mặt Trời từ một thời điểm Xuân Phân đến Xuân Phân kế tiếp, căn cứ để tính năm Dương Lịch chúng ta vẫn thường dùng, kéo dài 365,24219[1] ngày. Nếu một năm Âm Lịch thông thường có 12 tháng, thì tổng cộng cũng chỉ kéo dài 354,36708 ngày, thiếu 10,87511 ngày so với năm Dương Lịch. Sau 3 năm, số ngày thiếu sẽ là 32,62533 ngày, tương đương khoảng một chu kỳ Mặt Trăng. Lúc đó chúng ta sẽ coi năm Âm Lịch đó có 13 tháng bao gồm 1 tháng nhuận
Một khái niệm cơ bản nữa là Số ngày Julius (Julian Day Number, hay JDN), là số đếm ngày trôi qua kể từ 12 giờ trưa UTC ngày 1/1/4713 Trước Công Nguyên theo Lịch Julius Ngoại suy (Proleptic Julian Calendar), trong đó áp dụng Lịch Julius với chu kỳ năm nhuận 4 năm một lần cho thời kỳ trước cả khi lịch này ra đời và ổn định (vì trong thời kỳ trước không hề có lịch rõ ràng). Hãy xem thêm về Lịch Julius ở phần 3.1.
Cách tính Lịch Âm của Việt Nam gồm những nguyên tắc sau[2][3]:
Vì lý do múi giờ mà đôi khi Lịch Âm của Việt Nam và Trung Quốc lệch nhau, có khi Tết Nguyên đán 2 nước cách nhau cả tháng. Nhưng về cơ bản 2 lịch vẫn đồng bộ: có thể một nước có tháng trước 29 ngày và tháng sau 30 ngày, một nước ngược lại, nhưng tổng 2 tháng vẫn là 59 ngày; một nước năm trước 12 tháng và năm sau 13 tháng, một nước ngược lại, nhưng tổng 2 năm vẫn là 25 tháng.
Giả sử áp dụng cách tính trên với những nơi có múi giờ xa cách hơn, thậm chí cách nửa vòng Trái Đất, tỷ lệ "lệch pha" so với lịch Việt Nam sẽ còn cao hơn, nhưng về tổng thể cũng không mất đồng bộ.
Hiện nay hầu hết trên thế giới trong đó có Việt Nam sử dụng Lịch Gregory (Gregorian Calendar), và rất có thể lịch này sẽ còn được sử dụng ổn định trong một tương lai rất xa nữa. Tuy nhiên trong lịch sử cũng đã có một giai đoạn dài người ta sử dụng Lịch Julius. Sự khác nhau của 2 nhánh Lịch Dương này rất nhỏ, nhưng cũng đủ tạo nên sự khác biệt lớn.
Lịch Julius chấp nhận làm tròn một năm chu kỳ Mặt Trời có 365,25 ngày, nghĩa là xếp đều đặn mỗi 4 năm sẽ có một năm nhuận thêm 1 ngày. Trong ngắn hạn thì con số làm tròn đó không gây ảnh hưởng, chỉ dư 0,00781 ngày mỗi năm so với chu kỳ chính xác nhất là 365,24219 ngày như đã nêu ở mục 2.2. Nhưng sau 1500 năm kể từ khi Lịch Julius được áp dụng ổn định đầu Công Nguyên, số dư đã tích lũy lên đến 11,715 ngày, nghĩa là Xuân Phân thực tế đến sớm hơn trên lịch gần 12 ngày.
Để giải quyết vấn đề này, thế giới chuyển sang dùng Lịch Gregory kể từ tháng 10 năm 1582. Lịch Gregory cũng xếp mỗi 4 năm sẽ có một năm nhuận, nhưng quy định những năm chia hết 100 mà không chia hết 400 không phải năm nhuận (ví dụ như năm 1700, 1800, 1900, 2100, 2200, 2300, 2500...). Như vậy đồng nghĩa Lịch Gregory chấp nhận làm tròn một năm có 365,2425 ngày, chỉ dư ra 0,00031 ngày mỗi năm. Cần đến khoảng 3226 năm để Xuân Phân đến sớm 1 ngày so với lịch này.
Quay về tháng 10/1582, người ta cũng sửa độ trễ mà Lịch Julius tạo ra bằng cách bỏ đi 10 ngày trên lịch. Ngày 4/10/1582 vẫn được tính theo lịch cũ, nhưng ngày hôm sau chuyển luôn thành 15/10/1582 và bắt đầu tính theo Lịch Gregory. Điểm kết nối không hoàn hảo này được sử dụng với hầu hết các bộ lịch trong thiên văn học, và cũng sẽ được áp dụng trong công cụ Lịch Ta.
Vậy còn thời gian trở về trước Công Nguyên? Các bộ lịch trong thiên văn học đều sử dụng luôn Lịch Julius Ngoại suy như đã nói ở mục 2.2. Như vậy 12 giờ trưa UTC ngày 1/1/4713 Trước Công Nguyên có JDN bằng 0, ngày 1/1/1 Sau Công Nguyên có JDN bằng 1721424, ngày 1/1/2025 có JDN bằng 2460706.
Lịch Gregory cũng tiếp nhận số đếm JDN, ngày 4/10/1582 có JDN bằng 2299160 thì ngày 15/10/1582 có JDN bằng 2299161...
Bản thân Lịch Âm tính dựa trên hệ thống Lịch Dương như trên cũng mang tính ngoại suy, vì phải đến năm 1967[4] Việt Nam mới có văn bản thống nhất lại về việc tính lịch. Nếu so sánh với các nguồn tài liệu lịch sử, có thể sẽ có sai khác, nhưng dù sao công cụ này vẫn là một đầu mối tra cứu.
HAHTech sẽ sử dụng công thức tính hoàng kinh độ Mặt Trời mà nhà nghiên cứu Hồ Ngọc Đức đưa ra. Công thức này có ưu điểm hơn công thức phổ biến được chia sẻ trên Wiki, đó là tính cả sự dao động sai lệch nhỏ do tác động của Mặt Trăng lên Trái Đất (nutation và aberration).
Hàm trên được viết bằng PHP, tính ra hoàng kinh độ từ 0 đến 2 Pi (radian)
Theo công thức chung:
Để xác định các điểm Sóc, chúng ta cũng có công thức chung được chia sẻ trên Wiki[5]
Hàm trên được viết bằng PHP, tính ra JDN của các điểm Sóc khác nhau, lấy mốc điểm Sóc số 0 là điểm Sóc ngày 1/1/1900. Số thứ tự các điểm Sóc thường được ký hiệu là k, đếm lên 1, 2, 3... sau điểm mốc 0, hoặc đếm lùi -1, -2, -3... trước điểm mốc.
Cách tính trên đã khá chính xác, có thể áp dụng tốt trong các ứng dụng lịch giới hạn tương lai gần. Tuy nhiên vẫn có các mô hình tính toán chi tiết hơn, chính xác hơn cần được tham khảo cho tương lai xa hoặc cả trong những nghiên cứu lịch sử.
Theo nguồn dữ liệu AstroPixels:
Một nguồn dữ liệu mà HAHTech đưa thêm vào Lịch Ta, đó là của AstroPixels.com[6]. Họ có dữ liệu tất cả các điểm Sóc từ năm 2000 Trước Công Nguyên đến năm 4000 Sau Công Nguyên.
Trong tương lai gần thì sự khác biệt thường chỉ một vài phút giữa dữ liệu AstroPixels và kết quả công thức trên không gây ra ảnh hưởng đáng kể, nhưng đến năm 2072 thì khác. Nếu dùng công thức trên để tính toán, năm 2072 sẽ có một điểm Sóc rơi vào 0h01 ngày 10/12 theo giờ Việt Nam; nhưng trong dữ liệu AstroPixels, điểm Sóc đó rơi vào 23h59 ngày 9/12. Điều này sẽ khiến Lịch Âm của 2 nguồn khác nhau.
Tương tự đến năm 1985, một điểm Sóc rơi vào 23h59 ngày 18/10 theo công thức trên, nhưng lại rơi vào 0h00 ngày 19/10 theo AstroPixels.
Điều đáng lưu tâm hơn là nếu tra cứu điểm Sóc bằng công cụ thiên văn online của Hải quân Mỹ (aa.usno.navy.mil/data/MoonPhases), một nguồn được xem là đáng tin cậy hàng đầu thế giới, thì dữ liệu AstroPixels trùng khớp. Đó là lý do HAHTech hỗ trợ tra cứu thêm với AstroPixels.
Theo công thức chung:
Nếu sử dụng công thức ở phần 3.2 kết hợp với công thức chung 3.3, chúng ta sẽ cần tìm những thông số sau để tính Lịch Âm của một năm được chọn:Trong đó, kThisYear1, kNextYear1, và kLeapMonth là những thông số trực tiếp giúp xác định ngày bắt đầu năm Âm Lịch, ngày cuối năm, độ dài các tháng trong năm, và độ dài tháng nhuận nếu có.
Để tìm ngày mùng Một tháng 11 Âm Lịch của một năm bất kỳ, chúng ta sẽ cần:
Để tìm tháng nhuận trong khoảng thời gian từ tháng 11 Âm Lịch năm trước đến tháng 11 Âm Lịch năm sau, chúng ta sẽ cần:
Theo nguồn dữ liệu AstroPixels:
Nếu sử dụng công thức ở phần 3.2 kết hợp với dữ liệu AstroPixel, chúng ta sẽ tạo ra và dò theo các mảng lưu thông tin danh sách điểm Sóc của từng năm Dương Lịch, mỗi mảng đều có số lượng phần tử tương ứng (count) và chạy index riêng từ 0 đến count-1. Lúc đó, cần tìm những thông số sau để tính Lịch Âm của một năm được chọn:
Trong đó, indexThisYear1, indexNextYear1, countThisYearNewMoon, và indexLeapMonth là những thông số trực tiếp giúp xác định ngày bắt đầu năm Âm Lịch, ngày cuối năm, độ dài các tháng trong năm, và độ dài tháng nhuận nếu có.
Để tìm ngày mùng Một tháng 11 Âm Lịch của một năm bất kỳ, chúng ta sẽ cần:
Để tìm tháng nhuận trong khoảng thời gian từ tháng 11 Âm Lịch năm trước đến tháng 11 Âm Lịch năm sau, chúng ta sẽ cần:
Trái Đất hay Mặt Trăng đều chịu tác động từ hàng ngàn thiên thể xung quanh, tạo ra chừng đó chu kỳ dao động đa dạng lớn nhỏ khác nhau. Thông thường trong ngắn hạn, chúng ta có thể tạm thời bỏ qua các tác động nhỏ, dao động không đáng kể, nhưng về dài hạn thì tất cả đều gây ra ảnh hưởng. Đó là chưa kể thời gian Trái Đất tự quay quanh mình một vòng, chu kỳ tạo nên khái niệm ngày, cũng thường xuyên tăng giảm do biến động của địa chất và khí quyển.
Vì thế vẫn sẽ còn nhiều nguồn dữ liệu mà HAHTech sẵn sàng tìm hiểu để đưa thêm vào công cụ Lịch Ta, một ví dụ là nguồn dữ liệu của nhà nghiên cứu Hồ Ngọc Đức ở địa chỉ informatik.uni-leipzig.de/~duc/amlich. HAHTech lấy rất nhiều chia sẻ của nhà nghiên cứu này về phương pháp tính toán và lưu trữ thông tin Lịch Âm, nhưng cần làm rõ thêm một số vấn đề trong bảng dữ liệu địa chỉ này đưa ra.
Công thức 3.2 hoàn toàn có thể được thay thế bằng một nguồn dữ liệu, với những mảng lưu thông tin danh sách Trung Khí của từng năm Dương Lịch. HAHTech đã chuẩn bị phương án để tính Lịch Âm với trường hợp đó. Ngoài ra, các công thức, hàm tính toán có thể được nâng cấp chi tiết hơn, hoặc cập nhật điểm mốc mới.
Giống như việc lệch múi giờ, các nguồn dữ liệu và công thức tính khác nhau có thể tạo ra những bộ lịch lệch pha nhau, nhưng về tổng thể vẫn đồng bộ. Điều quan trọng là chúng ta có phương án tính toán luôn đúng với những nguyên tắc cố định của lịch cổ truyền Việt Nam, khi đó Lịch Ta vừa đồng hành cùng cuộc sống thường ngày, vừa có thể hỗ trợ nghiên cứu, đối chiếu, và cả đào tạo AI...
[1] Cuốn Explanatory Supplement to the Astronomical Almanac, phiên bản 1992. Biên tập: nhà nghiên cứu P. Kenneth Seidelmann. Nhà xuất bản University Science Books. ISBN 978-0-935702-68-2. Trang 576
[2] Bài Cách tính lịch dương sang lịch âm, trên báo Giáo dục & Thời đại ngày 15/11/2024
[3] Trang web Thuật toán tính âm lịch, của nhà nghiên cứu Hồ Ngọc Đức
[4] Thông tư 01-VLĐC ngày 19/8/1967 Giải thích và hướng dẫn thi hành Quyết định số 121-CP ngày 8-8-1967 của Hội đồng Chính phủ về việc Tính lịch và quản lý lịch của Nhà nước, đăng tải trên thuvienphapluat.vn
[5] Trang Wiki Mô đun:Âm lịch
[6] Bảng dữ liệu Six Millennium Catalog of Phases of the Moon, tác giả Fred Espenak
Ngoài ra còn có một số trang Wiki khác liên quan