Hồ Ngọc Đức
Bài viết sau reviews cách tính âm lịch việt nam và mô tả một số trong những thuật toán cần sử dụng để biến đổi giữa ngày dương lịch cùng ngày âm lịch. Những thuật toán tế bào tả tại đây đã được dễ dàng hóa nhiều để độc giả tiện theo dõi và quan sát và thuận tiện sử dụng vào câu hỏi lập trình, cho nên vì vậy độ đúng mực của bọn chúng thấp rộng độ chính xác của lịch trình âm lịch trực tuyến tại http://www.informatik.uni-leipzig.de/~duc/amlich/. (Một phiên phiên bản cũ của bài viết này trình làng vài thuật toán khá khác, có thể khó thực hiện hơn một chút. Phiên bản cũ này có thể xem trên đây.)Quy chính sách của âm kế hoạch Việt Nam
Thuật toán đổi khác giữa ngày dương với âm
Script), chúng ta có thể định nghĩa một hàm INT(x) để lấy số nguyên lớn số 1 không vượt thừa x: INT(5)=5, INT(3.2)=3, INT(-5)=-5, INT(-3.2)=-4 v.v. Khi đó, INT(m/10) sẽ trả lại tác dụng của phép chia số nguyên. (Nhiều ngôn từ có sẵn hàm floor() chất nhận được làm việc này.)Các phép đổi khác giữa ngày tháng và số ngày Julius rất có thể được tiến hành với mã JavaScript như sau:function jd
From
Date(dd, mm, yy)var a, y, m, jd;a = INT((14 - mm) / 12);y = yy+4800-a;m = mm+12*a-3;jd = dd + INT((153*m+2)/5) + 365*y + INT(y/4) - INT(y/100) + INT(y/400) - 32045;if (jd function jd
To
Zone là số giờ chênh lệch giữa giờ địa phương với giờ UTC (hay GMT). (Để tính lịch Việt Nam, đem time
Zone = 7.0). Các phương thức sau được giới thiệu với mã Java
Script. Chúng ta cũng có thể tải tủ sách Java
New
Moon
Day(k, time
Zone)var T, T2, T3, dr, Jd1, M, Mpr, F, C1, deltat, Jd
New;T = k/1236.85; // Time in Julian centuries from 1900 January 0.5T2 = T * T;T3 = T2 * T;dr = PI/180;Jd1 = 2415020.75933 + 29.53058868*k + 0.0001178*T2 - 0.000000155*T3;Jd1 = Jd1 + 0.00033*Math.sin((166.56 + 132.87*T - 0.009173*T2)*dr); // Mean new moon
M = 359.2242 + 29.10535608*k - 0.0000333*T2 - 0.00000347*T3; // Sun"s mean anomaly
Mpr = 306.0253 + 385.81691806*k + 0.0107306*T2 + 0.00001236*T3; // Moon"s mean anomaly
F = 21.2964 + 390.67050646*k - 0.0016528*T2 - 0.00000239*T3; // Moon"s argument of latitude
New
Moon
Day vẫn biết ngày vào đầu tháng âm lịch cất ngày N, từ kia ta biết ngày N là mùng mấy âm lịch.
Bạn đang xem: Tính ngày sinh âm lich
Tính tọa độ mặt trời
Để biết Trung khí như thế nào nằm trong thời điểm tháng âm định kỳ nào, ta chỉ việc tính xem mặt trời nằm ở vị trí khoảng nào trên đường hoàng đạo vào thời điểm bắt đầu một tháng âm lịch. Ta phân tách đường hoàng đạo có tác dụng 12 phần với đánh số các cung này từ bỏ 0 mang lại 11: trường đoản cú Xuân phân cho Cốc vũ là 0; từ cốc vũ đến Tiểu mãn là 1; từ tè mãn đến Hạ chí là 2; v.v.. Cho jdn là số ngày Julius của bất kỳ một ngày, cách thức sau này đã trả lại số cung nói trên.function getSun
Longitude(jdn, time
Zone)var T, T2, dr, M, L0, DL, L;T = (jdn - 2451545.5 - time
M = 357.52910 + 35999.05030*T - 0.0001559*T2 - 0.00000048*T*T2; // mean anomaly, degree
L0 = 280.46645 + 36000.76983*T + 0.0003032*T2; // mean longitude, degree
DL = (1.914600 - 0.004817*T - 0.000014*T2)*Math.sin(dr*M);DL = DL + (0.019993 - 0.000101*T)*Math.sin(dr*2*M) + 0.000290*Math.sin(dr*3*M);L = L0 + DL; // true longitude, degree
L = L*dr;L = L - PI*2*(INT(L/(PI*2))); // Normalize lớn (0, 2*PI)return INT(L / PI * 6)Với hàm này ta biết được một tháng âm lịch đựng Trung khí nào. đưa sử một mon âm lịch ban đầu vào ngày N1 và tháng sau đó bước đầu vào ngày N2 cùng hàm get
Sun
Longitude cho tác dụng là 8 với N1 và 9 với N2. Bởi vậy tháng âm lịch bước đầu ngày N1 là tháng chứa Đông chí: trong tầm từ N1 mang đến N2 có một ngày mặt trời di chuyển từ cung 8 (sau đái tuyết) lịch sự cung 9 (sau Đông chí). Ví như hàm get
Sun
Lunar
Month11(yy, time
Zone)var k, off, nm, sun
Long;off = jd
From
Date(31, 12, yy) - 2415021;k = INT(off / 29.530588853);nm = get
New
Moon
Day(k, time
Zone);sun
Long = get
Sun
Longitude(nm, time
Zone); // sun longitude at local midnightif (sun
Long >= 9) nm = get
New
Moon
Day(k-1, time
Zone);return nm;
Xác định mon nhuận
Nếu thân hai mon 11 âm lịch (tức tháng gồm chứa Đông chí) tất cả 13 tháng âm định kỳ thì năm âm lịch đó bao gồm tháng nhuận. Để xác minh tháng nhuận, ta thực hiện hàm getSun
Longitude như sẽ nói sống trên. Cho a11 là ngày ban đầu tháng 11 âm kế hoạch mà một trong các 13 tháng tiếp đến là tháng nhuận. Hàm sau cho thấy tháng nhuận nằm tại phần nào sau tháng 11 này.function get
Leap
Month
Offset(a11, time
Zone)var k, last, arc, i;k = INT((a11 - 2415021.076998695) / 29.530588853 + 0.5);last = 0;i = 1; // We start with the month following lunar month 11arc = get
Sun
Longitude(get
New
Moon
Day(k+i, time
Zone), time
Zone);do last = arc;i++;arc = get
Sun
Longitude(get
New
Moon
Day(k+i, time
Zone), time
Zone); while (arc != last && i mang sử hàm get
Leap
Month
Offset trả lại cực hiếm 4, như vậy tháng nhuận đã là tháng sau tháng 2 thường. (Tháng lắp thêm 4 sau mon 11 đáng ra là tháng 3, nhưng vì chưng đó là mon nhuận phải sẽ lấy tên của mon trước đó tức mon 2, với tháng sản phẩm công nghệ 5 sau tháng 11 mới là mon 3).
Xem thêm: Các loại côn trùng có lợi cho người nông dân, một số loài côn trùng có lợi trong vườn nhà bạn
Đổi ngày dương dd/mm/yyyy ra ngày âm
Với các phương thức hỗ trợ trên ta có thể đổi ngày dương dd/mm/yy ra ngày âm dễ dàng dàng. Thứ 1 ta coi ngày monthStart ban đầu tháng âm định kỳ chứa thời buổi này là ngày như thế nào (dùng hàm get
New
Moon
Day như trên vẫn nói). Sau đó, ta tìm các ngày a11 và b11 là ngày bắt đầu các mon 11 âm kế hoạch trước với sau ngày sẽ xem xét. Giả dụ hai ngày nay cách nhau dưới 365 ngày thì ta chỉ còn cần xem month
Start cùng a11 giải pháp nhau từng nào tháng là có thể tính được dd/mm/yy nằm vào thời điểm tháng mấy âm lịch. Ngược lại, ví như a11 cùng b11 biện pháp nhau khoảng 13 tháng âm định kỳ thì ta đề xuất tìm coi tháng như thế nào là tháng nhuận với từ đó suy ra ngày sẽ tìm nằm trong thời điểm tháng nào.function convert
Solar2Lunar(dd, mm, yy, time
Zone)var k, day
Number, month
Start, a11, b11, lunar
Day, lunar
Month, lunar
Year, lunar
Leap;day
Number = jd
From
Date(dd, mm, yy);k = INT((day
Number - 2415021.076998695) / 29.530588853);month
Start = get
New
Moon
Day(k+1, time
Zone);if (month
Start > day
Number) month
Start = get
New
Moon
Day(k, time
Zone);a11 = get
Lunar
Month11(yy, time
Zone);b11 = a11;if (a11 >= month
Start) lunar
Year = yy;a11 = get
Lunar
Month11(yy-1, time
Zone); else lunar
Year = yy+1;b11 = get
Lunar
Month11(yy+1, time
Zone);lunar
Day = day
Number-month
Start+1;diff = INT((month
Start - a11)/29);lunar
Leap = 0;lunar
Month = diff+11;if (b11 - a11 > 365) leap
Month
Diff = get
Leap
Month
Offset(a11, time
Zone);if (diff >= leap
Month
Diff) lunar
Month = diff + 10;if (diff == leap
Month
Diff) lunar
Leap = 1;if (lunar
Month > 12) lunar
Month = lunar
Month - 12;if (lunar
Month >= 11 && diff
Đổi âm lịch ra dương lịch
Cách làm cũng giống như như đổi ngày dương sang trọng ngày âm.function convertLunar2Solar(lunar
Day, lunar
Month, lunar
Year, lunar
Leap, time
Zone)var k, a11, b11, off, leap
Off, leap
Month, month
Start;if (lunar
Month 365) leap
Off = get
Leap
Month
Offset(a11, time
Zone);leap
Month = leap
Off - 2;if (leap
Month = leap
Off) off += 1;k = INT(0.5 + (a11 - 2415021.076998695) / 29.530588853);month
Start = get
New
Moon
Day(k+off, time
Zone);return jd
To
Date(month
Start+lunar
Day-1);
Tính ngày thứ với Can-Chi cho một ngày và tháng âm lịch
Ngày thứ lặp lại theo chu kỳ luân hồi 7 ngày, như thế để biết một ngày d/m/y bất kỳ là sản phẩm công nghệ mấy ta chỉ việc tìm và đào bới số dư của số ngày Julius của ngày này cho 7.Để tính Can của năm Y, kiếm tìm số dư của Y+6 phân tách cho 10. Số dư 0 là Giáp, 1 là Ất v.v. Để tính đưa ra của năm, chia Y+8 mang lại 12. Số dư 0 là Tý, một là Sửu, 2 là dần v.v.Hiệu Can-Chi của ngày tái diễn theo chu kỳ 60 ngày, như thế nó cũng rất có thể tính được một cách đối chọi giản. Cho N là số ngày Julius của ngày dd/mm/yyyy. Ta chia N+9 mang đến 10. Số dư 0 là Giáp, một là Ất v.v. Để search Chi, chia N+1 đến 12; số dư 0 là Tý, một là Sửu v.v.Trong 1 năm âm lịch, tháng 11 là tháng Tý, mon 12 là Sửu, tháng Giêng là tháng dần v.v. Can của mon M năm Y âm lịch được xem theo công thức sau: phân chia Y*12+M+3 cho 10. Số dư 0 là Giáp, một là Ất v.v.Ví dụ, Can-Chi của tháng 3 âm kế hoạch năm gần cạnh Thân 2004 là Mậu Thìn: tháng 3 âm lịch là mon Thìn, với (2004*12+3+3) % 10 = 24054 % 10 = 4, như vậy Can của mon là Mậu.Một tháng nhuận không mang tên riêng mà lấy tên của mon trước kia kèm thêm chữ "Nhuận", VD: mon 2 nhuận năm ngay cạnh Thân 2004 là tháng Đinh Mão nhuận.Tài liệu tham khảo
Eric Weisstein"s World of AstronomyCalendar FAQHồ Ngọc Đức, Java
Script lunar calendar - công tác âm lịch vn bằng Java
Script (sử dụng bảng tính sẵn cho thời kỳ 1800-2199)Tính âm định kỳ dùng các ngôn ngữ khác: Java
Ngày dương lịch là đồ vật Hai 16 - 1 - 2023 là ngày 25 tháng 12 năm 2022 . Theo Can chi : Ngày gần kề Tuất tháng Quý Sửu Năm Nhâm dần dần
Bạn đang xem: Tra ngày sinh âm lịch
0:00 | Giờ: gần kề Tý |
Thiên Lao | Hắc Đạo |
1:00 | Giờ: Ất Sửu |
Nguyên Vũ | Hắc Đạo |
3:00 | Giờ: Bính Dần |
Tư Mệnh | Hoàng Đạo |
5:00 | Giờ:Đinh Mão |
Câu Trận | Hắc Đạo |
7:00 | Giờ: Mậu Thìn |
Thanh Long | Hoàng Đạo |
9:00 | Giờ: Kỷ Tỵ |
Minh Đường | Hoàng Đạo |
11:00 | Giờ: Canh Ngọ |
Thiên Hình | Hắc Đạo |
13:00 | Giờ: Tân Mùi |
Chu Tước | Hắc Đạo |
15:00 | Giờ: Nhâm Thân |
Kim Quỹ | Hoàng Đạo |
17:00 | Giờ: Quý Dậu |
Kim Đường ( Bảo Quang) | Hoàng Đạo |
19:00 | Giờ: tiếp giáp Tuất |
Bạch Hổ | Hắc Đạo |
21:00 | Giờ: Ất Hợi |
Ngọc Đường | Hoàng Đạo |
23:00 | Giờ: ngay cạnh Tý |
Thiên Lao | Hắc Đạo |
Ngày Hoàng Đạo | Sao: Thanh Long | ||
Giờ Hoàng đạo | dần Thìn Tỵ Thân Dậu Hợi | ||
Giờ Hắc đạo | Tí Sửu Mão Ngọ hương thơm Tuất | ||
Năm | Kim | Bạch | Bạch kim |
Mùa | Thổ | Mùa Đông | Quý |
Ngày | Hoả | Sơn đầu | Lửa trên đỉnh núi |
Tuổi xung năm | Canh Thân, Bính Thân, Bính Dần | ||
Tuổi xung ngày | Nhâm Thìn, Canh Thìn, Canh Tuất | ||
Tiết khí | Giữa : đái hàn ( Rét vơi ) và Đại hàn ( lạnh lẽo đậm) | ||
Sao | Tâm | Tâm nguyệt Hồ | |
Ngũ hành | Thái Âm | Chủ trì :Thứ 2 | |
Động vật | con Chồn | Diễn giải | |
Trực | Thu | Thu hoạch tốt, kỵ khởi công, xuất hành, an táng | |
Hướng xuất hành | |||
Hỷ thần | Đông Bắc | ||
Tài thần | Đông Nam | ||
Cát tinh | Diễn giải | ||
Nguyệt Không | Tốt cho bài toán làm nhà, có tác dụng gường | ||
Sát Cống | Tốt giải trừ được các sao xấu (trừ Kim thần thất sát). | ||
Thánh tâm | Tốt các việc, độc nhất là ước phúc, tế tự | ||
Đại Hồng Sa | Tốt rất nhiều việc | ||
Sát tinh | Kỵ | Ghi chú | |
Hoang vu | Xấu hầu như việc | ||
Ngũ Quỹ | Kỵ xuất hành | ||
Nguyệt Hình | Xấu đều việc | ||
Quỷ khốc | Xấu với tế tự, mai táng | ||
Thiên cưng cửng ( khử Môn) | Xấu các việc | ||
Trường Đoản Tinh | May áo, nạp tài, giao dịch, lập di chúc,đề cử bạn | ||
Tứ thời cô quả | Kỵ giá bán thú | ||
Địa phá | Kỵ xây dựng |
Đây là pháp luật tra cứu giúp ngày Dương Lịch lịch sự Âm Lịch hoàn toàn miễn giá tiền và chính xác. Chúng ta cũng có thể tra cứu giúp gần 200 năm (từ năm 1904 mang đến năm 2099)