Lịch Ta - Công cụ xem lịch âm theo cách tính của Việt Nam

Advertise-1

Tra Cứu
Theo Tháng

Tra Cứu
Theo Ngày

1. Hướng dẫn sử dụng app Lịch Ta

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:

  • Ngày (đối với tra cứu theo ngày): Là số nguyên dương và không lớn hơn số ngày tối đa trong tháng tương ứng (28, 29, 30, hoặc 31 tùy tháng)
  • Tháng: Là lựa chọn số nguyên dương từ 1 đến 12
  • Năm: Là số nguyên dương. Nếu cần tra cứu năm Trước Công Nguyên, hãy đánh dấu TCN trong lựa chọn bên dưới
  • TCN hoặc SCN: Là lựa chọn Trước Công Nguyên hoặc Sau Công Nguyên
  • Nguồn dữ liệu điểm Sóc: Là lựa chọn nguồn dữ liệu được sử dụng. Lựa chọn này sẽ được giải thích kỹ hơn ở phần 3.3

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

2. Cách tính Lịch Âm của người Việt Nam

2.1. Tổng quan về Lịch Âm của người Việt Nam

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.

2.2. Những khái niệm cơ bản trong phương pháp tính lịch

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)

Biểu đồ Thiên Cầu với đường hoàng đạo, cùng hệ thống hoàng kinh độ và hoàng vĩ độ
Biểu đồ Thiên Cầu với đường hoàng đạo, cùng hệ thống hoàng kinh độ và hoàng vĩ độ. Nguồn ảnh: Wikipedia

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.

2.3. Cách tính cụ thể

Cách tính Lịch Âm của Việt Nam gồm những nguyên tắc sau[2][3]:

  • Ngày đầu tiên của tháng Âm Lịch là ngày chứa điểm Sóc. Ví dụ nếu điểm Sóc rơi vào 23h59 ngày 25/11 Dương Lịch, thì 25/11 là ngày Mùng Một Âm Lịch; nhưng nếu điểm Sóc rơi sang 0h00 ngày 26/11, thì 26/11 mới là ngày Mùng Một. Từ nguyên tắc này, một tháng Âm Lịch có thể có nguyên 29 hoặc 30 ngày tùy lúc.
  • Tương tự như trên, thời điểm bắt đầu một Tiết Khí rơi vào ngày nào, dù là 23h59 có lẻ bao nhiêu giây đi nữa, thì ngày đó được coi là ngày bắt đầu Tiết Khí đó. Nếu đó là ngày Mùng Một Âm Lịch, tháng Âm Lịch này được coi là chứa Tiết Khí vừa nêu.
  • Đông Chí, Trung Khí cuối cùng trong năm Dương Lịch với hoàng kinh độ 270, cần chắc chắn được xếp vào tháng 11 Âm Lịch.
  • Chu kỳ từ tháng 11 Âm Lịch năm trước đến tháng 11 Âm Lịch năm sau thường sẽ có 12 tháng, nhưng nếu phát sinh thành 13 tháng thì chúng ta biết rằng trong đó có 1 tháng nhuận. Tháng Âm Lịch đầu tiên sau Đông Chí không chứa Trung Khí nào sẽ được tính là tháng nhuận
  • Việc lập lịch của Việt Nam dựa trên múi giờ UTC+7 (GMT+7), khác với múi giờ UTC+8 của Trung Quốc (dù các nguyên tắc trên đều tương tự). Lấy lại ví dụ điểm Sóc rơi vào 23h59 ngày 25/11 Dương Lịch theo giờ Việt Nam, thì 25/11 là ngày Mùng Một Âm Lịch Việt Nam; nhưng ở Trung Quốc lúc đó đã là 0h59 ngày 26/11, nên 26/11 là ngày Mùng Một Âm Lịch Trung Quốc.

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ộ.

3. Những lựa chọn và giải pháp của HAHTech

3.1. Sử dụng Lịch Dương như thế nào?

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.

3.2. Cách tính thời điểm các Tiết Khí

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 tìm hoàng kinh độ Mặt Trời theo ngày
Hàm tìm hoàng kinh độ Mặt Trời theo ngày

Hàm trên được viết bằng PHP, tính ra hoàng kinh độ từ 0 đến 2 Pi (radian)

3.3. Cách xác định các điểm Sóc

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 tìm JDN các điểm Sóc
Hàm tìm JDN các điểm Sóc.

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.

3.4. Phương án tính lịch cụ thể

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:
  • kLastYear11: số thứ tự k của điểm Sóc ngày mùng Một tháng 11 Âm Lịch năm ngay trước năm cần tra cứu.
  • kThisYear11: số thứ tự k của điểm Sóc ngày mùng Một tháng 11 Âm Lịch năm cần tra cứu.
  • kNextYear11: số thứ tự k của điểm Sóc ngày mùng Một tháng 11 Âm Lịch năm ngay sau năm cần tra cứu.
  • kThisYear1: số thứ tự k của điểm Sóc ngày mùng Một tháng Giêng Âm Lịch năm cần tra cứu.
  • kNextYear1: số thứ tự k của điểm Sóc ngày mùng Một tháng Giêng Âm Lịch năm ngay sau năm cần tra cứu.
  • kLeapMonth: số thứ tự k của điểm Sóc ngày mùng Một tháng nhuận năm cần tra cứu (bằng 0 nếu không có năm nhuậ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ó.

Lưu đồ thuật toán tính Lịch Âm theo công thức chung
Lưu đồ thuật toán tính Lịch Âm theo công thức chung (bước in màu đậm hơn sẽ có lưu đồ chi tiết bên dưới).

Để 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:

  • jdn3112: JDN ngày 31/12 của năm cần tra cứu.
  • kLastNewMoon: số k của điểm Sóc ngày mùng Một Âm Lịch ngay trước ngày 31/12 của năm cần tra cứu.
  • JdLastNewMoon: JDN của ngày mùng Một ngay trước ngày 31/12 của năm cần tra cứu.
  • kSecondLastNewMoon: số k của điểm Sóc ngày mùng Một trước nữa.
  • sunLongitude: index của Tiết Khí tương ứng JdLastNewMoon. Trong một chu kỳ từ thời điểm Xuân Phân năm trước đến Xuân Phân năm sau, chúng ta chia thành 24 Tiết Khí với 24 index từ 0 đến 23. Index của ngày Đông Chí là 18.
  • kLunarMonth11 (đầu ra): số k của điểm Sóc ngày mùng Một tháng 11 năm cần tra cứu
Lưu đồ thuật toán tìm mùng Một tháng 11 Âm Lịch theo công thức chung
Lưu đồ thuật toán tìm mùng Một tháng 11 Âm Lịch theo công thức chung.

Để 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:

  • k1 (đầu vào): số k của điểm Sóc ngày mùng Một tháng 11 Âm Lịch năm 1
  • k2 (đầu vào): số k của điểm Sóc ngày mùng Một tháng 11 năm 2
  • jdnk: JDN của ngày mùng Một tương ứng điểm Sóc k
  • jdnk+: JDN của ngày mùng Một tương ứng điểm Sóc k+1
  • sunLongitude1, sunLongitude2: index của Tiết Khí tương ứng jdnk và jdnk+
  • k (đầu ra): số k chạy từ k1+1 đến k2-1.
Lưu đồ thuật toán tìm mùng Một tháng nhuận Âm Lịch theo công thức chung
Lưu đồ thuật toán tìm mùng Một tháng nhuận Âm Lịch theo công thức chung.

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:

  • indexLastYear11: index của điểm Sóc ngày mùng Một tháng 11 Âm Lịch năm ngay trước năm cần tra cứu.
  • indexThisYear11: index của điểm Sóc ngày mùng Một tháng 11 Âm Lịch năm cần tra cứu.
  • indexNextYear11: index của điểm Sóc ngày mùng Một tháng 11 Âm Lịch năm ngay sau năm cần tra cứu.
  • countPreviousYearNewMoon: số lượng phần tử mảng điểm Sóc của năm ngay trước năm cần tra cứu.
  • countThisYearNewMoon: số lượng phần tử mảng điểm Sóc của năm cần tra cứu.
  • indexThisYear1: index của điểm Sóc ngày mùng Một tháng Giêng Âm Lịch năm cần tra cứu.
  • indexNextYear1: index của điểm Sóc ngày mùng Một tháng Giêng Âm Lịch năm ngay sau năm cần tra cứu.
  • indexLeapMonth: index tương đương của điểm Sóc ngày mùng Một tháng nhuận năm cần tra cứu (bằng -1 nếu không có năm nhuậ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ó.

Lưu đồ thuật toán tính Lịch Âm theo dữ liệu AstroPixels
Lưu đồ thuật toán tính Lịch Âm theo dữ liệu AstroPixels (bước in màu đậm hơn sẽ có lưu đồ chi tiết bên dưới).

Để 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:

  • indexLastNewMoon: index của điểm Sóc ngày mùng Một Âm Lịch cuối cùng của năm cần tra cứu.
  • JdLastNewMoon: JDN của ngày mùng Một cuối cùng của năm cần tra cứu.
  • indexSecondLastNewMoon: index của điểm Sóc ngày mùng Một áp chót của năm cần tra cứu.
  • sunLongitude: index của Tiết Khí tương ứng JdLastNewMoon. Trong một chu kỳ từ thời điểm Xuân Phân năm trước đến Xuân Phân năm sau, chúng ta chia thành 24 Tiết Khí với 24 index từ 0 đến 23. Index của ngày Đông Chí là 18.
  • indexLunarMonth11 (đầu ra): index của điểm Sóc ngày mùng Một tháng 11 năm cần tra cứu
Lưu đồ thuật toán tìm mùng Một tháng 11 Âm Lịch theo dữ liệu AstroPixel
Lưu đồ thuật toán tìm mùng Một tháng 11 Âm Lịch theo dữ liệu AstroPixel.

Để 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:

  • index1st11 (đầu vào): index của điểm Sóc ngày mùng Một tháng 11 Âm Lịch năm 1
  • index2nd11 (đầu vào): index của điểm Sóc ngày mùng Một tháng 11 năm 2
  • index1stMax: index của điểm Sóc ngày mùng Một cuối cùng năm 1
  • jdn1stMax: JDN của ngày mùng Một tương ứng điểm Sóc cuối cùng năm 1
  • jdn2nd0: index của điểm Sóc ngày mùng Một đầu tiên năm 2
  • jdnindex: JDN của ngày mùng Một tương ứng điểm Sóc index
  • jdnindex+: JDN của ngày mùng Một tương ứng điểm Sóc index+1
  • sunLongitude1, sunLongitude2: index của Tiết Khí tương ứng các jdn
  • index (đầu ra): số index chạy từ 0 đến index2nd11-1.
Lưu đồ thuật toán tìm mùng Một tháng nhuận Âm Lịch theo dữ liệu AstroPixels
Lưu đồ thuật toán tìm mùng Một tháng nhuận Âm Lịch theo dữ liệu AstroPixels.

3.5. Hướng phát triể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...

Nguồn tham khảo

[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