Hồ Ngọc Đức

Bài viết sau giới thiệu cách tính âm lịch vn và mô tả một trong những thuật toán sử dụng để đổi khác giữa ngày dương lịch và ngày âm lịch. Những thuật toán mô tả tại chỗ này đã được đơn giản và dễ dàng hóa các để bạn đọc tiện quan sát và theo dõi và dễ ợt sử dụng vào việc lập trình, cho nên vì vậy độ đúng chuẩn của chúng thấp hơn độ đúng mực của công tác âm kế hoạch trực tuyến đường tại http://www.informatik.uni-leipzig.de/~duc/amlich/. (Một phiên bản cũ của bài viết này ra mắt vài thuật toán hơi khác, hoàn toàn có thể khó tiến hành hơn một chút. Phiên bản cũ này hoàn toàn có thể xem tại đây.)

Quy giải pháp của âm kế hoạch Việt Nam

Thuật toán chuyển đổi giữa ngày dương và âm

Script), chúng ta cũng có thể định nghĩa một hàm INT(x) để lấy số nguyên lớn nhất không vượt quá x: INT(5)=5, INT(3.2)=3, INT(-5)=-5, INT(-3.2)=-4 v.v. Lúc đó, INT(m/10) sẽ trả lại kết quả của phép phân tách số nguyên. (Nhiều ngôn từ có sẵn hàm floor() được cho phép làm vấn đề này.)Các phép biến hóa giữa ngày tháng và số ngày Julius có thể được triển khai với mã Java
Script 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à khoảng thời gian chênh lệch thân giờ địa phương cùng giờ UTC (hay GMT). (Để tính định kỳ Việt Nam, lấy time
Zone = 7.0). Các cách thức sau được reviews với mã Java
Script. Chúng ta có thể tải thư viện 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 sẽ biết ngày đầ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: Đổi ngày dương lịch sang ngày am lịch

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 lịch nào, ta chỉ việc tính xem khía cạnh trời nằm ở vị trí khoảng nào trên tuyến đường hoàng đạo vào thời điểm bước đầu một mon âm lịch. Ta phân tách đường hoàng đạo làm 12 phần cùng đánh số những cung này trường đoản cú 0 mang lại 11: tự Xuân phân mang đến Cốc vũ là 0; từ ly vũ mang đến Tiểu mãn là 1; từ tè mãn đến Hạ chí là 2; v.v.. Mang đến jdn là số ngày Julius của ngẫu nhiên một ngày, phương pháp sau này đã trả lại số cung nói trên.function get
Sun
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 hiểu rằng một tháng âm lịch cất Trung khí nào. Mang sử một mon âm lịch ban đầu vào ngày N1 cùng tháng sau đó ban đầu vào ngày N2 cùng hàm get
Sun
Longitude cho tác dụng là 8 cùng với N1 cùng 9 với N2. Do đó tháng âm lịch ban đầu ngày N1 là tháng đựng Đông chí: trong vòng từ N1 đến N2 tất cả một ngày mặt trời dịch rời từ cung 8 (sau tiểu tuyết) sang cung 9 (sau Đông chí). Nếu 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 tháng nhuận

Nếu thân hai mon 11 âm định kỳ (tức tháng tất cả chứa Đông chí) tất cả 13 mon âm kế hoạch thì năm âm kế hoạch đó tất cả tháng nhuận. Để khẳng định tháng nhuận, ta thực hiện hàm get
Sun
Longitude
như vẫn nói sinh sống trên. Cho a11 là ngày bắt đầu tháng 11 âm định kỳ mà một trong các 13 tháng tiếp đến là tháng nhuận. Hàm sau cho thấy thêm tháng nhuận nằm tại đoạn nào sau mon 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 trả sử hàm get
Leap
Month
Offset
trả lại quý giá 4, như thế tháng nhuận sẽ là mon sau tháng 2 thường. (Tháng đồ vật 4 sau tháng 11 đáng ra là mon 3, nhưng vị đó là tháng nhuận nên sẽ rước tên của mon trước đó tức tháng 2, cùng tháng thứ 5 sau tháng 11 new là tháng 3).

Đổ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. Trước tiên ta coi ngày month
Start bắt đầu tháng âm lịch chứa ngày này là ngày làm sao (dùng hàm get
New
Moon
Day như trên đang nói). Sau đó, ta tìm các ngày a11 cùng b11 là ngày ban đầu các mon 11 âm định kỳ trước và sau ngày vẫn xem xét. Trường hợp hai thời nay cách nhau dưới 365 ngày thì ta chỉ với cần xem month
Start cùng a11 bí quyết nhau bao nhiêu tháng là hoàn toàn có thể tính được dd/mm/yy nằm hồi tháng mấy âm lịch. Ngược lại, nếu như a11 cùng b11 bí quyết nhau khoảng tầm 13 tháng âm kế hoạch thì ta phải tìm xem tháng như thế nào là tháng nhuận và 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 tương tự như như thay đổi ngày dương lịch sự ngày âm.function convert
Lunar2Solar(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ứ cùng Can-Chi cho ngày và mon âm lịch

Ngày thứ tái diễn theo chu kỳ 7 ngày, như vậy để biết một ngày d/m/y bất kỳ là sản phẩm mấy ta chỉ việc tìm kiếm số dư của số ngày Julius của thời nay cho 7.Để tính Can của năm Y, tìm kiế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 bỏ ra của năm, phân tách Y+8 đến 12. Số dư 0 là Tý, 1 là Sửu, 2 là dần dần v.v.Hiệu Can-Chi của ngày tái diễn theo chu kỳ 60 ngày, như vậy nó cũng hoàn toàn có thể tính được một cách 1-1 giản. Cho N là số ngày Julius của ngày dd/mm/yyyy. Ta phân tách N+9 mang đến 10. Số dư 0 là Giáp, một là Ất v.v. Để tra cứu Chi, chia N+1 cho 12; số dư 0 là Tý, 1 là Sửu v.v.Trong một năm âm lịch, mon 11 là tháng Tý, tháng 12 là Sửu, tháng Giêng là tháng dần v.v. Can của tháng M năm Y âm lịch được tính theo phương pháp sau: phân chia Y*12+M+3 cho 10. Số dư 0 là Giáp, 1 là Ất v.v.Ví dụ, Can-Chi của tháng 3 âm kế hoạch năm giáp Thân 2004 là Mậu Thìn: mon 3 âm định kỳ là tháng Thìn, với (2004*12+3+3) % 10 = 24054 % 10 = 4, bởi vậy Can của mon là Mậu.Một mon nhuận không mang tên riêng mà lại lấy thương hiệu của mon trước đó kèm thêm chữ "Nhuận", VD: tháng 2 nhuận năm ngay cạnh Thân 2004 là tháng Đinh Mão nhuận.

Xem thêm: Hướng Dẫn Xem Trang Đã Thích Trên Facebook Bằng Điện Thoại, Cách Xem Các Page Đã Thích Trên Facebook

Tài liệu tham khảo

Eric Weisstein"s World of Astronomy
Calendar FAQHồ Ngọc Đức, Java
Script lunar calendar - lịch trình âm lịch việt nam bằng Java
Script (sử dụng bảng tính sẵn mang lại thời kỳ 1800-2199)Tính âm kế hoạch dùng các ngôn ngữ khác: Java
Ngày dương định kỳ là Thứ tứ 29 - 3 - 2023 là ngày 8 tháng 2 năm 2023 . Theo Can chi : Ngày Bính Tuất mon Ất Mão Năm Quý Mão
0:00 Giờ: Mậu Tý
Thiên Lao Hắc Đạo
1:00 Giờ: Kỷ Sửu
Nguyên Vũ Hắc Đạo
3:00 Giờ: Canh Dần
Tư Mệnh Hoàng Đạo
5:00 Giờ:Tân Mão
Câu Trận Hắc Đạo
7:00 Giờ: Nhâm Thìn
Thanh Long Hoàng Đạo
9:00 Giờ: Quý Tỵ
Minh Đường Hoàng Đạo
11:00 Giờ: giáp Ngọ
Thiên Hình Hắc Đạo
13:00 Giờ: Ất Mùi
Chu Tước Hắc Đạo
15:00 Giờ: Bính Thân
Kim Quỹ Hoàng Đạo
17:00 Giờ: Đinh Dậu
Kim Đường ( Bảo Quang) Hoàng Đạo
19:00 Giờ: Mậu Tuất
Bạch Hổ Hắc Đạo
21:00 Giờ: Kỷ Hợi
Ngọc Đường Hoàng Đạo
23:00 Giờ: Mậu Tý
Thiên Lao Hắc Đạo

Ngày Hắc Đạo Sao: Thiên Lao
Giờ Hoàng đạo dần 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 Mộc Mùa Xuân Trọng
Ngày Thổ Ốc thượng Ðất trên mái nhà
Tuổi xung năm Tân Dậu, Đinh Dậu, Đinh Mão
Tuổi xung ngày Mậu Thìn, Nhâm Thìn, Nhâm Ngọ, Nhâm Tí
Tiết khí Giữa : Xuân phân ( thân xuân )

và giãi tỏ ( Trời trong sạch )

Sao Sâm Sâm thủy Viên
Ngũ hành Thuỷ Chủ trì :Thứ 4
Động vật con Vượn Diễn giải
Trực Nguy Mọi bài toán đều xấu
Hướng xuất hành
Hỷ thần Tây Nam
Tài thần Đông
Cát tinh Diễn giải
Bất Tương Tốt các sự giỏi lành duy nhất là nhập gia hôn nhân, trừ sao xấu bệnh dịch tật.
Hoạt Điệu Tốt, nhưng gặp mặt thụ tử thì xấu
Lục Hợp Tốt mọi việc
Minh tinh Tốt phần đa việc
Sát tinh Kỵ Ghi chú
Nguyệt hư ( Nguyệt Sát) Xấu đối với việc giá bán thú, mở cửa, mở hàng
Nguyệt phá Xấu về tạo nhà cửa
Quỷ khốc Xấu cùng với tế tự, mai táng
Thiên ôn Kỵ xây dựng

*

Xem phong thuỷ


Vật phẩm phong thuỷ


Facebook Fanpage


*

*
làm chủ bởi thành tựu Phong Thủy. Mtv của Blog Phong Thủy. Tổng Đài bán sản phẩm 19006883. Designed by thi công Website Đẹp