Trong nội dung bài viết này khansar.net chúng tôi xin trình làng tới chúng ta bài hướng dẫn phương pháp đổi Dương sang lịch Âm và ngược lại với hai từ thời điểm cách đây là thuật toán nhằm lập trình cùng hàm Excel sử dụng trong công việc văn phòng hàng ngày.
Bạn đang xem: Thuật toán đổi lịch dương sang lịch âm
Bài viết sau trình làng cách tính âm lịch nước ta và mô tả một số thuật toán cần sử dụng để biến hóa giữa ngày dương lịch cùng ngày âm lịch. Các thuật toán mô tả ở đây đã được đơn giản dễ dàng hóa những để độc giả tiện theo dõi và quan sát và dễ dãi sử dụng vào việc lập trình, cho nên vì vậy độ chính xác của chúng thấp hơn độ chính xác của công tác âm kế hoạch trực đường tại http://www.informatik.uni-leipzig.de/~duc/amlich/. (Một phiên bạn dạng cũ của bài viết này ra mắt vài thuật toán khá khác, có thể khó triển khai hơn một chút.
Quy lý lẽ của âm định kỳ Việt Nam
Âm lịch nước ta là một nhiều loại lịch thiên văn. Nó được đo lường và thống kê dựa trên sự vận động của phương diện trời, trái đất cùng mặt trăng.
Ngày tháng âm lịch được xem dựa theo những nguyên tắc sau:
Ngày trước tiên của mon âm lịch là ngày đựng điểm SócMột năm bình thường có 12 mon âm lịch, một năm nhuận gồm 13 tháng âm lịchĐông chí luôn rơi hồi tháng 11 âm lịchTrong một năm nhuận, nếu có 1 tháng không tồn tại Trung khí thì tháng đó là tháng nhuận. Nếu các tháng những năm nhuận đều không tồn tại Trung khí thì chỉ tháng thứ nhất sau Đông chí là mon nhuậnViệc đo lường và thống kê dựa bên trên kinh tuyến đường 105° đông.Sóc là thời gian hội diện, đó là khi trái đất, khía cạnh trăng với mặt trời nằm trên một mặt đường thẳng cùng mặt trăng nằm giữa trái đất và mặt trời. (Như cầm góc giữa mặt trăng cùng mặt trời bởi 0 độ). điện thoại tư vấn là "hội diện" bởi mặt trăng với mặt trời ở và một hướng đối với trái đất. Chu kỳ luân hồi của điểm Sóc là khoảng chừng 29,5 ngày. Ngày chứa điểm Sóc được call là ngày Sóc, và sẽ là ngày bước đầu tháng âm lịch.TRA CỨU THẦN SỐ HỌC ONLINEXem Đường Đời, Sự Nghiệp, Tình Duyên, Vận Mệnh, những Năm Đỉnh Cao Cuộc Đời...
(*) Họ với tên của bạn:
Trung khí là các điểm phân chia đường hoàng đạo thành 12 phần bởi nhau. Vào đó, tư Trung khí giữa tứ mùa là đặc trưng nhất: Xuân phân (khoảng 20/3), Hạ chí (khoảng 22/6), Thu phân (khoảng 23/9) cùng Đông chí (khoảng 22/12).
Bởi vì dựa trên cả phương diện trời với mặt trăng buộc phải lịch vn không buộc phải là thuần âm lịch mà lại là âm-dương-lịch. Theo các nguyên tắc trên, để tính tháng ngày âm lịch cho một năm ngẫu nhiên trước hết họ cần xác định những ngày nào trong những năm chứa các thời điểm Sóc (New moon) . Một khi bạn đã tính được ngày Sóc, bạn đã biết được ngày bước đầu và kết thúc của một mon âm lịch: ngày mùng một của mon âm kế hoạch là ngày chứa điểm sóc. Sau khoản thời gian đã biết ngày bắt đầu/kết thúc những tháng âm lịch, ta tính xem các Trung khí (Major solar term) rơi vào thời điểm tháng nào nhằm từ đó xác định tên các tháng và tìm tháng nhuận.
Đông chí luôn rơi trong thời điểm tháng 11 của năm âm lịch. Bởi vậy bọn họ cần tính 2 điểm sóc: Sóc A ngay trước thời gian ngày Đông chí trước tiên và Sóc B ngay trước thời gian ngày Đông chí trang bị hai. Nếu khoảng cách giữa A cùng B là dưới 365 ngày thì năm âm lịch tất cả 12 tháng, và phần nhiều tháng đó mang tên là: tháng 11, mon 12, tháng 1, mon 2, …, tháng 10. Ngược lại, nếu khoảng cách giữa nhị sóc A với B là trên 365 ngày thì năm âm lịch này là năm nhuận, và chúng ta cần search xem đâu là tháng nhuận. Để thao tác làm việc này ta xem xét toàn bộ các tháng giữa A và B, tháng thứ nhất không đựng Trung khí sau ngày Đông chí thứ nhất là mon nhuận. Mon đó sẽ được mang tên của tháng trước nó kèm chữ "nhuận".
Ví dụ 1: Âm định kỳ năm 1984
Chúng ta vận dụng quy qui định trên để tính âm lịch vn năm 1984.
Ví dụ 2: Âm lịch năm 2004
Thuật toán đổi khác giữa ngày dương và âm
Dùng các công thức sau ta có thể chuyển đổi giữa ngày/tháng/năm và số ngày Julius. Phép chia ở cả 2 công thức sau được phát âm là phân tách số nguyên, bỏ phần dư: 23/4=5.
Đổi ngày dd/mm/yyyy ra số ngày Julius jda = (14 - mm) / 12y = yy+4800-am = mm+12*a-3
Lịch Gregory:
jd = dd + (153*m+2)/5 + 365*y + y/4 - y/100 + y/400 - 32045
Lịch Julius:
jd = dd + (153*m+2)/5 + 365*y + y/4 - 32083
Đổi số ngày Julius jd ra ngày dd/mm/yyyy
Lịch Gregory (jd to hơn 2299160):
a = jd + 32044;b = (4*a+3)/146097;c = a - (b*146097)/4;
Lịch Julius:
b = 0;c = jd + 32082;
Công thức cho tất cả 2 các loại lịch:
d = (4*c+3)/1461;e = c - (1461*d)/4;m = (5*e+2)/153;dd = e - (153*m+2)/5 + 1;mm = m + 3 - 12*(m/10);yy = b*100 + d - 4800 + m/10;
Nếu ngôn ngữ lập trình chúng ta dùng không cung ứng phép phân tách số nguyên cho phần dư (VD: JavaScript), 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 công dụng của phép phân chia số nguyên. (Nhiều ngôn từ có sẵn hàm floor() chất nhận được làm bài toán này.)
Các phép đổi khác giữa ngày tháng với số ngày Julius hoàn toàn có thể được triển khai với mã JavaScript như sau:
function jdFromDate(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 jd = dd + INT((153*m+2)/5) + 365*y + INT(y/4) - 32083;}return jd;
function jdToDate(jd)
Trong các công thức sau, timeZone là thời gian chênh lệch giữa giờ địa phương cùng giờ UTC (hay GMT). (Để tính kế hoạch Việt Nam, rước timeZone = 7.0). Các cách thức sau được trình làng với mã JavaScript. Chúng ta có thể tải thư viện JavaScript hoặc thư viện PHP hoàn chỉnh để tham khảo.
Tính ngày Sóc
Như trên vẫn nói, để tính được âm lịch trước nhất ta cần xác định các mon âm lịch ban đầu vào ngày nào.
function getNewMoonDay(k, timeZone)
var T, T2, T3, dr, Jd1, M, Mpr, F, C1, deltat, JdNew;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 moonM = 359.2242 + 29.10535608*k - 0.0000333*T2 - 0.00000347*T3; // Sun"s mean anomalyMpr = 306.0253 + 385.81691806*k + 0.0107306*T2 + 0.00001236*T3; // Moon"s mean anomalyF = 21.2964 + 390.67050646*k - 0.0016528*T2 - 0.00000239*T3; // Moon"s argument of latitudeC1=(0.1734 - 0.000393*T)*Math.sin(M*dr) + 0.0021*Math.sin(2*dr*M);C1 = C1 - 0.4068*Math.sin(Mpr*dr) + 0.0161*Math.sin(dr*2*Mpr);C1 = C1 - 0.0004*Math.sin(dr*3*Mpr);C1 = C1 + 0.0104*Math.sin(dr*2*F) - 0.0051*Math.sin(dr*(M+Mpr));C1 = C1 - 0.0074*Math.sin(dr*(M-Mpr)) + 0.0004*Math.sin(dr*(2*F+M));C1 = C1 - 0.0004*Math.sin(dr*(2*F-M)) - 0.0006*Math.sin(dr*(2*F+Mpr));C1 = C1 + 0.0010*Math.sin(dr*(2*F-Mpr)) + 0.0005*Math.sin(dr*(2*Mpr+M));if (T deltat= 0.001 + 0.000839*T + 0.0002261*T2 - 0.00000845*T3 - 0.000000081*T*T3;} else deltat= -0.000278 + 0.000265*T + 0.000262*T2;;JdNew = Jd1 + C1 - deltat;return INT(JdNew + 0.5 + timeZone/24)
Tính tọa độ mặt trời
Để biết Trung khí làm sao nằm trong tháng âm định kỳ nào, ta chỉ việc tính xem phương diện trời nằm tại vị trí khoảng nào trên đường hoàng đạo vào thời điểm ban đầu một mon âm lịch. Ta phân tách đường hoàng đạo có tác dụng 12 phần cùng đánh số những cung này từ bỏ 0 đến 11: trường đoản cú Xuân phân đến Cốc vũ là 0; từ cốc vũ đến Tiểu mãn là 1; từ tè mãn cho Hạ chí là 2; v.v.. Mang lại jdn là số ngày Julius của bất kỳ một ngày, cách thức sau này vẫn trả lại số cung nói trên.
function getSunLongitude(jdn, timeZone)
Với hàm này ta biết được một tháng âm lịch chứa Trung khí nào. đưa sử một tháng âm lịch bước đầu vào ngày N1 và tháng sau đó ban đầu vào ngày N2 với hàm getSunLongitude cho hiệu quả là 8 cùng với N1 cùng 9 cùng với N2. Như vậy tháng âm lịch bắt đầu ngày N1 là tháng cất Đông chí: trong tầm từ N1 mang đến N2 gồm một ngày mặt trời dịch rời từ cung 8 (sau đái tuyết) lịch sự cung 9 (sau Đông chí). Ví như hàm getSunLongitude trả lại cùng một kết quả cho tất cả ngày ban đầu một tháng âm lịch với ngày ban đầu tháng tiếp đến thì mon đó không tồn tại Trung khí và như vậy hoàn toàn có thể là tháng nhuận.
Tìm ngày bước đầu tháng 11 âm lịch
function getLunarMonth11(yy, timeZone)
var k, off, nm, sunLong;off = jdFromDate(31, 12, yy) - 2415021;k = INT(off / 29.530588853);nm = getNewMoonDay(k, timeZone);sunLong = getSunLongitude(nm, timeZone); // sun longitude at local midnightif (sunLong >= 9) nm = getNewMoonDay(k-1, timeZone);return nm;
Xác định tháng nhuận
Nếu thân hai tháng 11 âm định kỳ (tức tháng tất cả chứa Đông chí) tất cả 13 tháng âm định kỳ thì năm âm định kỳ đó tất cả tháng nhuận. Để xác minh tháng nhuận, ta sử dụng hàm getSunLongitude như đã nói ở trên. Cho a11 là ngày bắt đầu tháng 11 âm định kỳ mà 1 trong 13 tháng sau đó là mon 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 getLeapMonthOffset(a11, timeZone)
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 = getSunLongitude(getNewMoonDay(k+i, timeZone), timeZone);do last = arc; i++; arc = getSunLongitude(getNewMoonDay(k+i, timeZone), timeZone); while (arc != last && i return i-1;
Giả sử hàm getLeapMonthOffset trả lại giá trị 4, như thế tháng nhuận đang là tháng sau tháng 2 thường. (Tháng vật dụng 4 sau mon 11 đúng ra là tháng 3, nhưng vị đó là mon nhuận nên sẽ đem tên của mon trước kia tức mon 2, và tháng sản phẩm 5 sau mon 11 bắt đầu là mon 3).
Đổi ngày dương dd/mm/yyyy ra ngày âm
Với các phương pháp hỗ trợ trên ta có thể đổi ngày dương dd/mm/yy ra ngày âm dễ dàng. Trước tiên ta xem ngày monthStart bắt đầu tháng âm định kỳ chứa thời nay là ngày như thế nào (dùng hàm getNewMoonDay như trên vẫn nói). Sau đó, ta tìm những ngày a11 với b11 là ngày bắt đầu các tháng 11 âm lịch trước và sau ngày đã xem xét. Ví như hai thời buổi này cách nhau dưới 365 ngày thì ta chỉ từ cần coi monthStart với a11 phương pháp nhau bao nhiêu tháng là hoàn toàn 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, giả dụ a11 và b11 bí quyết nhau khoảng 13 tháng âm kế hoạch thì ta nên tìm xem tháng nào là tháng nhuận với từ kia suy ra ngày đã tìm nằm hồi tháng nào.
function convertSolar2Lunar(dd, mm, yy, timeZone)
var k, dayNumber, monthStart, a11, b11, lunarDay, lunarMonth, lunarYear, lunarLeap;dayNumber = jdFromDate(dd, mm, yy);k = INT((dayNumber - 2415021.076998695) / 29.530588853);monthStart = getNewMoonDay(k+1, timeZone);if (monthStart > dayNumber) monthStart = getNewMoonDay(k, timeZone);a11 = getLunarMonth11(yy, timeZone);b11 = a11;if (a11 >= monthStart) lunarYear = yy; a11 = getLunarMonth11(yy-1, timeZone); else lunarYear = yy+1; b11 = getLunarMonth11(yy+1, timeZone);lunarDay = dayNumber-monthStart+1;diff = INT((monthStart - a11)/29);lunarLeap = 0;lunarMonth = diff+11;if (b11 - a11 > 365) leapMonthDiff = getLeapMonthOffset(a11, timeZone); if (diff >= leapMonthDiff) lunarMonth = diff + 10; if (diff == leapMonthDiff) lunarLeap = 1; if (lunarMonth > 12) lunarMonth = lunarMonth - 12;if (lunarMonth >= 11 && diff lunarYear -= 1;}
Đổi âm lịch ra dương lịch
Cách làm cũng tương tự như đổi ngày dương lịch sự ngày âm.
function convertLunar2Solar(lunarDay, lunarMonth, lunarYear, lunarLeap, timeZone)
var k, a11, b11, off, leapOff, leapMonth, monthStart;if (lunarMonth a11 = getLunarMonth11(lunarYear-1, timeZone); b11 = getLunarMonth11(lunarYear, timeZone);} else a11 = getLunarMonth11(lunarYear, timeZone); b11 = getLunarMonth11(lunarYear+1, timeZone);off = lunarMonth - 11;if (off off += 12;}if (b11 - a11 > 365) leapOff = getLeapMonthOffset(a11, timeZone); leapMonth = leapOff - 2; if (leapMonth leapMonth += 12; if (lunarLeap != 0 && lunarMonth != leapMonth) return new Array(0, 0, 0); else if (lunarLeap != 0 || off >= leapOff) off += 1; }k = INT(0.5 + (a11 - 2415021.076998695) / 29.530588853);monthStart = getNewMoonDay(k+off, timeZone);return jdToDate(monthStart+lunarDay-1);
Tính ngày thứ với Can-Chi cho ngày và tháng â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 ngẫu nhiên là sản phẩm 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, tra cứu số dư của Y+6 phân chia cho 10. Số dư 0 là Giáp, một là Ất v.v. Để tính bỏ ra của năm, chia Y+8 mang lại 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 lặp lại theo chu kỳ 60 ngày, như thế nó cũng rất có thể tính được một cách đối kháng giản. Cho N là số ngày Julius của ngày dd/mm/yyyy. Ta phân tách N+9 mang lại 10. Số dư 0 là Giáp, 1 là Ất v.v. Để kiếm tìm Chi, phân chia N+1 mang đến 12; số dư 0 là Tý, 1 là Sửu v.v.
Trong một năm âm lịch, tháng 11 là mon Tý, mon 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 mang đến 10. Số dư 0 là Giáp, một là Ất v.v.
Ví dụ, Can-Chi của mon 3 âm lịch năm giáp Thân 2004 là Mậu Thìn: mon 3 âm kế hoạch là mon Thìn, và (2004*12+3+3) % 10 = 24054 % 10 = 4, vì thế Can của tháng là Mậu.
Một tháng nhuận không có tên riêng nhưng mà lấy tên của mon trước kia kèm thêm chữ "Nhuận", VD: tháng 2 nhuận năm ngay cạnh Thân 2004 là mon Đinh Mão nhuận.
Tài liệu tham khảo
Đổi ngày âm qua dương bằng các ứng dụng online
Điều khiếu nại để chuyển đổi ngày âm khí và dương khí theo biện pháp này là bạn cần có các thiết bị điện tử liên kết với mạng Internet. Biện pháp đổi này vô cùng tiện nghi và cấp tốc chóng. Chúng ta có thể tải các phần mềm biến đổi từ kho ứng dụng như CH play ( so với hệ quản lý điều hành Android) hoặc táo Store ( nếu thực hiện hệ quản lý điều hành IOS).
Hoặc nếu như bạn không mong mất thời hạn download với tốn bộ nhớ điện thoại, bạn hoàn toàn rất có thể đổi âm định kỳ sang dương lịch bằng các làm việc sau đây
Ngày 1Ngày 2Ngày 3Ngày 4Ngày 5Ngày 6Ngày 7Ngày 8Ngày 9Ngày 10Ngày 11Ngày 12Ngày 13Ngày 14Ngày 15Ngày 16Ngày 17Ngày 18Ngày 19Ngày 20Ngày 21Ngày 22Ngày 23Ngày 24Ngày 25Ngày 26Ngày 27Ngày 28Ngày 29Ngày 30Ngày 31 | Tháng 1Tháng 2Tháng 3Tháng 4Tháng 5Tháng 6Tháng 7Tháng 8Tháng 9Tháng 10 tháng 11Tháng 12 | Năm 2032Năm 2031Năm 2030Năm 2029Năm 2028Năm 2027Năm 2026Năm 2025Năm 2024Năm 2023Năm 2022Năm 2021Năm 2020Năm 2019Năm 2018Năm 2017Năm 2016Năm 2015Năm 2014Năm 2013Năm 2012Năm 2011Năm 2010Năm 2009Năm 2008Năm 2007Năm 2006Năm 2005Năm 2004Năm 2003Năm 2002Năm 2001Năm 2000Năm 1999Năm 1998Năm 1997Năm 1996Năm 1995Năm 1994Năm 1993 Năm 1992Năm 1991Năm 1990Năm 1989Năm 1988Năm 1987Năm 1986Năm 1985Năm 1984Năm 1983Năm 1982Năm 1981Năm 1980Năm 1979Năm 1978Năm 1977Năm 1976Năm 1975Năm 1974Năm 1973Năm 1972Năm 1971Năm 1970Năm 1969Năm 1968Năm 1967Năm 1966Năm 1965Năm 1964Năm 1963Năm 1962Năm 1961Năm 1960Năm 1959Năm 1958Năm 1957Năm 1956Năm 1955Năm 1954Năm 1953Năm 1952Năm 1951Năm 1950Năm 1949 Năm 1948Năm 1947Năm 1946Năm 1945Năm 1944Năm 1943Năm 1942Năm 1941Năm 1940Năm 1939Năm 1938Năm 1937Năm 1936Năm 1935Năm 1934Năm 1933Năm 1932Năm 1931Năm 1930Năm 1929Năm 1928Năm 1927Năm 1926Năm 1925Năm 1924Năm 1923Năm 1922Năm 1921Năm 1920Năm 1919Năm 1918Năm 1917Năm 1916Năm 1915Năm 1914Năm 1913Năm 1912Năm 1911Năm 1910Năm 1909Năm 1908Năm 1907Năm 1906Năm 1905 Năm 1904Năm 1903Năm 1902Năm 1901 | Dương sang âmÂm sang trọng dương |
Đổi ngày/Xem ngày | |||
Đầu tiên bạn truy vấn vào trang web có cung ứng công cụ thay đổi ngày âm thanh lịch dương. Tiếp theo, nhập tháng ngày năm Âm định kỳ mà bạn có nhu cầu chuyển đổi. Kế tiếp nhấn vào nút coi kết quả Chờ khoảng vài giây, các bạn sẽ thấy bên dưới là kết quả thay đổi ngày âm sang ngày dương hiển thị đầy đủ. Thậm chí có thêm cả những thông tin về tiếng hoàng đạo, hắc đạo, những tuổi xung khắc nhằm tiện cho chính mình tham khảo. Cách chuyển lịch âm thanh lịch dương bởi thuật toán ExcelTrong ngôi trường hợp laptop nhà bạn không có kết nối mạng mạng internet để truy vấn vào những trang web thay đổi ngày âm ra ngày dương online, chúng ta cũng có thể đổi được bằng những thuật toán gồm trong Excel. Tuy nhiên, hiện thời Excel vẫn chưa chất nhận được người dùng hoàn toàn có thể đổi lịch âm khí và dương khí trực tiếp bằng các hàm sẵn có. Bởi đó, để tiến hành việc thay đổi lịch âm dương trong Excel, bạn cần thực hiện các thao tác sau đây: Đầu tiên, nhằm tự tạo thành hàm biến hóa lịch âm khí và dương khí bạn cần có bộ code thiết kế VBA. Việc xây dựng bộ code này khá phức tạp. Do đó để tiết kiệm thời gian, chúng ta cũng có thể tìm kiếm code VBA đổi khác lịch âm dương do các bạn lập trình viên biên soạn sẵn nhằm sử dụng. Tiếp theo chúng ta mở file Excel lên, nhận phím alt +F11 để bật chương trình VBA ![]() Sau kia vào Insert > Module . Các bạn dán đoạn code sẽ copy sống trên vào form soạn thảo ![]() Quay quay lại bảng tính Excel, để chuyển lịch âm khí và dương khí bạn áp dụng hàm TRANSSOLAR theo cú pháp như hình bên dưới. ![]() Như vậy chỉ với những thao tác đơn giản và dễ dàng trên đây, bạn đã có thể đổi khác lịch âm dương một cách nhanh chóng và bao gồm xác. Cám ơn bạn đã theo dõi nội dung bài viết và đừng -quên share những tin tức hữu ích này mang đến gia đình, bạn bè của bạn nhé. Tử Vi Tân Sửu 2021 Của 12 nhỏ GiápTử vi tuổi Tí năm 2021Tử vi tuổi Sửu năm 2021Tử vi tuổi dần năm 2021Tử vi tuổi Mão năm 2021Tử vi tuổi Thìn năm 2021Tử vi tuổi Tỵ năm 2021Tử vi tuổi Ngọ năm 2021Tử vi tuổi mùi hương năm 2021Tử vi tuổi Thân năm 2021Tử vi tuổi Dậu năm 2021Tử vi tuổi Tuất năm 2021Tử vi tuổi Hợi năm 2021 |