//$("#show_day").click(function () { // var val = $("#datepicker").val(); // location.href = "/lich-am/ngay?date=" + val; //}) //$("#show_day").click(function () { // var val = $("#datepicker").val(); console.log("sdsd", val); // location.href = "/Calendar/Date?date=" + val; //}) function getRandomInt(max) { return Math.floor(Math.random() * Math.floor(max)); } var index = getRandomInt(10) if (typeof (index) !== "undefined") { $('.page').css({ "background": "url(/themes/default/images/calendar/bg" + index + ".jpg)", "background-position": "center", "background-repeat": "no-repeat", "background-size": "cover", "background-attachment": "fixed" }); } var now = new Date(); //set ngày dương var selectSolarDay = document.getElementById("ngayduonglich"); var i; for (i = 1; i <= 31; i++) { selectSolarDay.options[selectSolarDay.options.length] = new Option(i, i); } // set tháng dương var selectSolarMonth = document.getElementById("thangduonglich"); var i; for (i = 1; i <= 12; i++) { selectSolarMonth.options[selectSolarMonth.options.length] = new Option(i, i); } //set ngày âm var selectLunarDay1 = document.getElementById("ngayamlich"); var i; for (i = 1; i <= 31; i++) { selectLunarDay1.options[selectLunarDay1.options.length] = new Option(i, i); } // set tháng âm var selectLunarMonth = document.getElementById("thangamlich"); var i; for (i = 1; i <= 12; i++) { selectLunarMonth.options[selectLunarMonth.options.length] = new Option(i, i); } var solarDay = now.getDate() var solarMonth = now.getMonth() + 1 var solarYear = now.getFullYear(); $("#ngayduonglich").val(solarDay); $("#thangduonglich").val(solarMonth); $("#solarYear").val(solarYear); //$('#ngayduonglich').change(function () { // var day = $("#ngayduonglich").val(); // var month = $("#thangduonglich").val(); // var year = $("#solarYear").val(); // var d = new Date(); // var jd = jdFromDate(day, month, year); // var s = jdToDate(jd); // var TZ = d.getUTCHours(); // var l = convertSolar2Lunar(s[0], s[1], s[2], TZ); // $("#ngayamlich").val(l[0]); // $("#thangamlich").val(l[1]); // $("#lunarYear").val(l[2]); // var da = year + "-" + month + "-" + day // alert(da); //}); //set click show dương lich //$("#viewSolar").click(function () { // var solarDate = $("#solarYear").val() + "-" + selectSolarMonth.options[selectSolarMonth.selectedIndex].value + "-" + selectSolarDay.options[selectSolarDay.selectedIndex].value; // //var solarDate = solarYear + "-" + solarMonth + "-" + solarDay; // var val = $("#datepicker").val(); console.log("sdsd", val); // location.href = "/Calendar/Date?date=" + solarDate; //}) 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 < 2299161) { jd = dd + INT((153 * m + 2) / 5) + 365 * y + INT(y / 4) - 32083; } return jd; } function jdToDate(jd) { var a, b, c, d, e, m, day, month, year; if (jd > 2299160) { // After 5/10/1582, Gregorian calendar a = jd + 32044; b = INT((4 * a + 3) / 146097); c = a - INT((b * 146097) / 4); } else { b = 0; c = jd + 32082; } d = INT((4 * c + 3) / 1461); e = c - INT((1461 * d) / 4); m = INT((5 * e + 2) / 153); day = e - INT((153 * m + 2) / 5) + 1; month = m + 3 - 12 * INT(m / 10); year = b * 100 + d - 4800 + INT(m / 10); return new Array(day, month, year); } function INT(d) { return Math.floor(d); } 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.5 T2 = 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 C1 = (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 < -11) { 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) } var PI = Math.PI; 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 midnight if (sunLong >= 9) { nm = getNewMoonDay(k - 1, timeZone); } return nm; } function getSunLongitude(jdn, timeZone) { var T, T2, dr, M, L0, DL, L; T = (jdn - 2451545.5 - timeZone / 24) / 36525; // Time in Julian centuries from 2000-01-01 12:00:00 GMT T2 = T * T; dr = PI / 180; // degree to radian 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 to (0, 2*PI) return INT(L / PI * 6) } 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 11 arc = getSunLongitude(getNewMoonDay(k + i, timeZone), timeZone); do { last = arc; i++; arc = getSunLongitude(getNewMoonDay(k + i, timeZone), timeZone); } while (arc != last && i < 14); return i - 1; } 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 < 4) { lunarYear -= 1; } return new Array(lunarDay, lunarMonth, lunarYear, lunarLeap); } function convertLunar2Solar(lunarDay, lunarMonth, lunarYear, lunarLeap, timeZone) { var k, a11, b11, off, leapOff, leapMonth, monthStart; if (lunarMonth < 11) { a11 = getLunarMonth11(lunarYear - 1, timeZone); b11 = getLunarMonth11(lunarYear, timeZone); } else { a11 = getLunarMonth11(lunarYear, timeZone); b11 = getLunarMonth11(lunarYear + 1, timeZone); } off = lunarMonth - 11; if (off < 0) { off += 12; } if (b11 - a11 > 365) { leapOff = getLeapMonthOffset(a11, timeZone); leapMonth = leapOff - 2; if (leapMonth < 0) { 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); } // $('#ngayduonglich').change(function () { var day = parseInt($("#ngayduonglich").val()); var month = parseInt($("#thangduonglich").val()); var year = parseInt($("#solarYear").val()); var d = new Date(); var jd = jdFromDate(day, month, year); var s = jdToDate(jd); var TZ = d.getUTCHours(); var l = convertSolar2Lunar(s[0], s[1], s[2], TZ); $("#ngayamlich").val(l[0]); $("#thangamlich").val(l[1]); $("#lunarYear").val(l[2]); }); $('#thangduonglich').change(function () { var day = parseInt($("#ngayduonglich").val()); var month = parseInt($("#thangduonglich").val()); var year = parseInt($("#solarYear").val()); var d = new Date(); var jd = jdFromDate(day, month, year); var s = jdToDate(jd); var TZ = d.getUTCHours(); var l = convertSolar2Lunar(s[0], s[1], s[2], TZ); $("#ngayamlich").val(l[0]); $("#thangamlich").val(l[1]); $("#lunarYear").val(l[2]); }); $('#solarYear').change(function () { if ($("#solarYear").val().length == 4) { var day = parseInt($("#ngayduonglich").val()); var month = parseInt($("#thangduonglich").val()); var year = parseInt($("#solarYear").val()); var d = new Date(); var jd = jdFromDate(day, month, year); var s = jdToDate(jd); var TZ = d.getUTCHours(); var l = convertSolar2Lunar(s[0], s[1], s[2], TZ); $("#ngayamlich").val(l[0]); $("#thangamlich").val(l[1]); $("#lunarYear").val(l[2]); } else { alert("Bạn nhập năm chưa đúng"); } }); // $('#ngayamlich').change(function () { var valueSolarday = parseInt($("#ngayamlich").val()); var valueSolarMonth = parseInt($("#thangamlich").val()); var valueSolarYear = parseInt($("#lunarYear").val()); var d = new Date(); var TZ = d.getUTCHours(); var coversolar = convertLunar2Solar(valueSolarday, valueSolarMonth, valueSolarYear, lunarLeap, TZ); $("#ngayduonglich").val(coversolar[0]); $("#thangduonglich").val(coversolar[1]); $("#solarYear").val(coversolar[2]); }); $('#thangamlich').change(function () { var valueSolarday = parseInt($("#ngayamlich").val()); var valueSolarMonth = parseInt($("#thangamlich").val()); var valueSolarYear = parseInt($("#lunarYear").val()); var d = new Date(); var TZ = d.getUTCHours(); var coversolar = convertLunar2Solar(valueSolarday, valueSolarMonth, valueSolarYear, lunarLeap, TZ); $("#ngayduonglich").val(coversolar[0]); $("#thangduonglich").val(coversolar[1]); $("#solarYear").val(coversolar[2]); }); $('#lunarYear').change(function () { if ($("#solarYear").val().length == 4) { var valueSolarday = parseInt($("#ngayamlich").val()); var valueSolarMonth = parseInt($("#thangamlich").val()); var valueSolarYear = parseInt($("#lunarYear").val()); var d = new Date(); var TZ = d.getUTCHours(); var coversolar = convertLunar2Solar(valueSolarday, valueSolarMonth, valueSolarYear, lunarLeap, TZ); $("#ngayduonglich").val(coversolar[0]); $("#thangduonglich").val(coversolar[1]); $("#solarYear").val(coversolar[2]); } else { alert("Bạn nhập năm chưa đúng"); } }); // //set xem ngày âm lịch var d = new Date(); var jd = jdFromDate(solarDay, solarMonth, solarYear); var s = jdToDate(jd); var TZ = d.getUTCHours(); var l = convertSolar2Lunar(s[0], s[1], s[2], TZ); var lunarLeap = l[3]; $("#ngayamlich").val(l[0]); $("#thangamlich").val(l[1]); $("#lunarYear").val(l[2]); var lunarLeap = l[3]; $("#viewLunar").click(function () { var valueSolarday = parseInt($("#ngayamlich").val()); var valueSolarMonth = parseInt($("#thangamlich").val()); var valueSolarYear = parseInt($("#lunarYear").val()); var coversolar = convertLunar2Solar(valueSolarday, valueSolarMonth, valueSolarYear, lunarLeap, TZ); if ($("body").hasClass("embed")) { var solarDate = coversolar[2] + "-" + coversolar[1] + "-" + coversolar[0] + "?theme=embed"; console.log("111"); } else { var solarDate = coversolar[2] + "-" + coversolar[1] + "-" + coversolar[0]; console.log("222"); } // location.href = "./?date=" + solarDate; location.href = "/lich-am/" + solarDate; })