Hồ Ngọc Đức

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

Quy pháp luật của âm định kỳ Việt Nam

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

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

Bạn đang xem: Ngày dần là ngày nào

Tính tọa độ khía cạnh trời

Để biết Trung khí nào nằm vào tháng âm kế hoạch nào, ta chỉ việc tính xem phương diện trời nằm tại khoảng nào trên phố hoàng đạo vào thời điểm ban đầu một tháng âm lịch. Ta chia đường hoàng đạo có tác dụng 12 phần với đánh số các cung này trường đoản cú 0 cho 11: trường đoản cú Xuân phân đến Cốc vũ là 0; từ cốc vũ cho 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 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 khổng lồ (0, 2*PI)return INT(L / PI * 6)Với hàm này ta biết được một mon âm lịch cất Trung khí nào. Mang sử một tháng âm lịch bước đầu vào ngày N1 và tháng sau đó bắt đầu vào ngày N2 và hàm get
Sun
Longitude cho hiệu quả là 8 cùng với N1 với 9 với N2. Bởi thế tháng âm lịch bắt đầu ngày N1 là tháng chứa Đông chí: trong vòng từ N1 mang đến N2 bao gồm một ngày phương diện trời dịch chuyển từ cung 8 (sau tiểu tuyết) thanh lịch cung 9 (sau Đông chí). Trường hợp 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 giữa hai mon 11 âm kế hoạch (tức tháng tất cả chứa Đông chí) có 13 tháng âm lịch thì năm âm định kỳ đó bao gồm tháng nhuận. Để khẳng định tháng nhuận, ta sử dụng hàm get
Sun
Longitude
như sẽ nói sinh hoạt trên. Mang lại a11 là ngày bắt đầu tháng 11 âm định kỳ mà 1 trong những 13 tháng kế tiếp là mon nhuận. Hàm sau cho biết tháng nhuận nằm tại phầ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 mang sử hàm get
Leap
Month
Offset
trả lại giá trị 4, như vậy tháng nhuận vẫn là mon sau tháng 2 thường. (Tháng vật dụng 4 sau tháng 11 lẽ ra là tháng 3, nhưng vị đó là mon nhuận buộc phải sẽ lấy tên của mon trước kia tức tháng 2, và tháng sản phẩm 5 sau mon 11 new là tháng 3).

Đổi ngày dương dd/mm/yyyy ra ngày âm

Với các phương pháp hỗ trợ bên trên ta hoàn toàn có thể đổi ngày dương dd/mm/yy ra ngày âm dễ dàng. Trước tiên ta coi ngày month
Start ban đầu tháng âm kế hoạch 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 đang nói). Sau đó, ta tìm những ngày a11 cùng b11 là ngày bước đầu các mon 11 âm kế hoạch trước cùng sau ngày vẫn xem xét. Trường hợp hai thời buổi này cách nhau dưới 365 ngày thì ta chỉ từ cần xem month
Start và a11 bí quyết nhau từng nào tháng là hoàn toàn có thể tính được dd/mm/yy nằm trong tháng mấy âm lịch. Ngược lại, nếu a11 với b11 giải pháp nhau khoảng tầm 13 tháng âm lịch thì ta đề nghị tìm coi tháng nào là mon 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 cũng tương tự như đổi ngày dương sang 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ứ và Can-Chi cho 1 ngày và tháng âm lịch

Ngày thứ lặp lại theo chu kỳ 7 ngày, như thế để biết một ngày d/m/y ngẫu nhiên là thiết bị mấy ta chỉ việc tìm kiếm số dư của số ngày Julius của ngày nay cho 7.Để tính Can của năm Y, search 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 đến 12. Số dư 0 là Tý, một 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ỳ luân hồi 60 ngày, như thế nó cũng có thể tính được một cách đối chọi giản. Mang đến 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, 1 là Ất v.v. Để tìm Chi, phân tách N+1 cho 12; số dư 0 là Tý, một là Sửu v.v.Trong 1 năm âm lịch, mon 11 là mon Tý, mon 12 là Sửu, mon Giêng là tháng dần dần v.v. Can của tháng M năm Y âm lịch được tính theo cách làm sau: chia Y*12+M+3 mang đến 10. Số dư 0 là Giáp, 1 là Ất v.v.Ví dụ, Can-Chi của mon 3 âm kế hoạch năm gần kề Thân 2004 là Mậu Thìn: tháng 3 âm định kỳ là tháng Thìn, với (2004*12+3+3) % 10 = 24054 % 10 = 4, như vậy Can của tháng là Mậu.Một tháng nhuận không mang tên riêng nhưng mà lấy tên của mon trước đó kèm thêm chữ "Nhuận", VD: mon 2 nhuận năm cạnh bên Thân 2004 là tháng Đinh Mão nhuận.

Tài liệu tham khảo

Eric Weisstein"s World of Astronomy
Calendar FAQHồ Ngọc Đức, Java
Script lunar calendar - chương trình âm lịch nước ta 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 những ngôn ngữ khác: Java
Tính năm, tháng, ngày, giờ đồng hồ là việc quan trọng trong các dịp quan trọng đặc biệt như xây nhà, cồn thổ, cưới gả. Bên dưới đây, tử vi phong thủy Tam Nguyên sẽ hướng dẫn bạn cách tính năm, tính tháng, tính ngày, tính giờ chuẩn chỉnh nhất theo Can Chi. Hãy thuộc theo dõi nhé!

Cách tính Năm

Lục thập hoa giáp là sự phối kết hợp 6 chu kỳ luân hồi hàng can với 5 chu kỳ luân hồi hàng chi thành hệ 60.Cách tính năm, tháng, ngày, giờ hồ hết theo hệ số đó, call là kế hoạch can chi. Có 6 chu kỳ luân hồi hàng can có nghĩa là có 6 sát mà mỗi chu kỳ hàng can tốt mỗi giáp có 10 can (đó là: Giáp, ất, bính, đinh, mậu, kỷ, canh, tân, nhâm, quý) nên được gọi là lục thập hoa giáp.

Hết một vòng 60 năm từ gần kề Tý mang đến Quý Hợi. Từ năm thứ 61 quay lại Giáp Tý, năm trang bị 121,181 ... Cũng trở về Giáp Tý. Đó là 1 trong những điều trở ngại đến việc nghiên cứu sử, nếu không ghi triều vua làm sao thì rất cạnh tranh xác định. Một gia đình có ông và cháu cùng một tuổi, gồm khi tính tuổi cháu nhiều hơn tuổi ông, vậy nên lúc tính thành dương lịch buộc phải phải chú ý cộng trừ bội số của 60.

Xem thêm: Quán bún bò ngon sài gòn chuẩn vị, ngon nức tiếng, top 10 quán bún bò sài gòn nóng hổi ăn là ghiền

Con số sau cuối của năm dương định kỳ ứng với các can:

0: canh (ví dụ Canh Thân 1980)1: tân (ví dụ Tân Dậu 1981)2: nhâm (ví dụ Nhâm Tuất 1982)3: quý (ví dụ Quý Hợi 1983)4: gần kề (ví dụ liền kề Tý 1984)5: ất (ví dụ Ất Sửu 1985)6: bính (ví dụ Bính dần dần 1986)7: đinh (ví dụ Đinh Mão 1987)8: mậu (ví dụ Mậu Thìn 1988)9: Kỷ (ví dụ Kỷ Tỵ 1989)

Bảng tính đổi năm kế hoạch can bỏ ra thành năm dương lịch

Chi/Can

Giáp

Ất

Bính

Đinh

Mậu

Kỷ

Canh

Tân

Nhâm

Quý

04

16

28

40

52

Sửu

05

17

29

41

53

Dần

54

06

18

30

42

Mão

55

07

19

31

43

Thìn

44

56

08

20

32

Tị

45

57

09

21

33

Ngọ

34

46

58

10

22

Mùi

35

47

59

11

23

Thân

24

36

48

00

12

Dậu

25

37

49

01

13

Tuất

14

26

38

50

02

Hợi

15

27

39

51

03

Cách tính năm: cộng hoặc trừ bội số 60 còn dư bao nhiêu, đối chiếu bảng dưới đây sẽ biết năm Can - Chi

Ví dụ:

Năm 1924. Ta rước 1924 : 60 = 32 dư 4. Vậy tra bảng đang là năm ngay cạnh TýNăm 1890. Ta mang 1890 : 60 = 31 dư 30. Vậy tra bảng sẽ là năm Canh Dần
Năm 843. Ta đem 843 : 60 = 14 dư 3. Vậy tra bảng vẫn là năm Quý Hợi

Cách tính mon theo năm Can Chi

Tháng giêng âm lịch luôn luôn luôn là tháng Dần, tháng hai là Mão, cứ tuân theo máy tự đó mang lại tháng 11 là Tý, mon chạp là Sửu (12 tháng ứng với 12 chi).

Tháng giêng của năm có hàng can
Giáp, Kỷ(ví dụ năm sát tý, kỷ tỵ) là tháng
Bính Dần

Tháng giêng của năm tất cả hàng canẤt, Canhlà tháng
Mậu Dần

Tháng giêng của năm bao gồm hàng can
Bính, Tânlà tháng
Canh Dần

Tháng giêng của năm gồm hàng can
Đinh, Nhâmlà tháng
Nhâm Dần

Tháng giêng của năm bao gồm hàng can
Mậu, Quýlà tháng
Giáp Dần

Trường thích hợp năm gồm tháng nhuận thì cứ theo tháng chủ yếu (không đổi).

Cách tính Ngày theo Năm Can Chi


*

Ngày can chi:Ngày can chi theo chu kỳ luân hồi 60, tự do không chịu ảnh hưởng vào năm mon âm định kỳ hay năm mon can chi - (Kể cả tháng nhuận).

Ngày âm lịch và ngày can bỏ ra chênh lệch nhau rất cực nhọc xác định. Tính ngày can chi chuyển đổi sang âm định kỳ rất phức hợp vì mon âm kế hoạch thiếu đủ từng năm không giống nhau (âm kế hoạch trong 19 năm có 7 tháng nhuận, lại có tháng đủ 30 ngày tháng thiếu 29 ngày theo trình từ bỏ không độc nhất vô nhị định) đề nghị tính ngày can đưa ra theo dương lịch dễ hơn.

Cách tính ngày dương lịch ra ngày can chi:

Mỗi năm Dương lịch có 365 ngày, tức thị 6 chu kỳ luân hồi Lục thập hoa giáp cộng thêm 5 ngày lẻ. Năm nhuận có thêm 1 ngày 29/02 tức 366 ngày, thì thêm vào đó 6 ngày lẻ. Nếu lấy ngày 1/3 là ngày mở màn thì các ngày tiếp sau đây trong gần như năm cùng can chi giống 1/3 là (30/4), (29/6), (28/8), (27/10), (26/12), (24/2 năm sau) đó. Nếu như biết ngày 1/3 (hay một trong những bảy ngày nói trên) là ngày gì, ta dễ dàng tính nhẩm hồ hết ngày bất kỳ trong năm (gần với một trong các bảy ngày nói trên).

Nếu ước ao tính hầu như ngày 1/3 năm tiếp theo hay năm tiếp theo nữa chỉ cần cộng thêm số dư là 5 đối với năm thường xuyên (tức là trường đoản cú 24/2 - 28/2) hoặc là 6 so với năm nhuận (có thêm ngày 29/2).

4. Cách tính Giờ

Giờ một ngày đêm bao gồm 24 giờ tuy thế theo can bỏ ra chỉ bao gồm 12 giờ. Giờ đồng hồ Tý (chính Tý lúc 0 giờ). Giờ đồng hồ Ngọ (chính Ngọ thời gian 12 giờ trưa).

Ban ngày tính từ bỏ giờ dần (tức 4 tiếng sáng) mang lại giờ Thân thời điểm 4 giờ chiều. đêm hôm tính từ giờ Dậu đến hết giờ Sửu. Giả dụ theo lịch can thì bước đầu từ 23 giờ 30 phút đã thanh lịch giờ Tý của ngày hôm sau.


Trên đây, phong thủy Tam Nguyên đã share đến chúng ta những kiến thức và kỹ năng về cách tính năm, tháng, ngày, giờ theo Can Chi. Hy vọng những tin tức này giúp ích cho mình vào một ngày ko xa. Ví như cần cung ứng về các vấn đề phong thủy, hãy liên hệ ngày với cửa hàng chúng tôi theo:

Hotline: 1900.2292

Hà Nội:Lô A12/D7, ngõ 66 Khúc vượt Dụ, Khu thành phố mới, ước Giấy, Hà Nội, Việt NamĐà Nẵng:Tầng 12, Tòa ACB, 218 Bạch Đằng, Phường Phước Ninh, Quận Hải Châu, Đà NẵngTP hồ nước Chí Minh:778/5 Nguyễn Kiệm, Phường 4, Quận Phú Nhuận, TP HCM

Bài viết liên quan