{"id":10303,"date":"2026-06-20T17:35:46","date_gmt":"2026-06-20T10:35:46","guid":{"rendered":"https:\/\/www.bautruc.com\/?page_id=10303"},"modified":"2026-06-20T18:27:12","modified_gmt":"2026-06-20T11:27:12","slug":"lich-van-nien","status":"publish","type":"page","link":"https:\/\/www.bautruc.com\/en\/lich-van-nien\/","title":{"rendered":"L\u1ecbch v\u1ea1n ni\u00ean"},"content":{"rendered":"\n<div id=\"lvn-calendar\">\n  <div class=\"lvn-container\">\n\n    <!-- Ti\u00eau \u0111\u1ec1 -->\n    <div class=\"lvn-header\">\n      <h2 class=\"lvn-title\">L\u1ecaCH V\u1ea0N NI\u00caN<\/h2>\n      <p class=\"lvn-subtitle\">\u00c2m &amp; D\u01b0\u01a1ng l\u1ecbch Vi\u1ec7t Nam<\/p>\n    <\/div>\n\n    <div class=\"lvn-grid-main\">\n\n      <!-- ============ C\u1ed8T TR\u00c1I: T\u1edc L\u1ecaCH NG\u00c0Y ============ -->\n      <div class=\"lvn-day-block\">\n        <div class=\"lvn-db-weekday\" id=\"lvn-db-weekday\">\u2014<\/div>\n\n        <div class=\"lvn-db-bignum\">\n          <div class=\"lvn-db-day\" id=\"lvn-db-day\">&#8212;<\/div>\n          <div class=\"lvn-db-monthyear\" id=\"lvn-db-monthyear\">Th\u00e1ng &#8212; \/ &#8212;-<\/div>\n        <\/div>\n\n        <div class=\"lvn-db-lunar\">\n          <div class=\"lvn-db-lunar-label\">\u00c2m l\u1ecbch<\/div>\n          <div class=\"lvn-db-lunar-main\">\n            <span class=\"lvn-db-lunar-day\" id=\"lvn-db-lunar-day\">&#8212;<\/span>\n            <span class=\"lvn-db-lunar-month\" id=\"lvn-db-lunar-month\">th\u00e1ng &#8212;<\/span>\n          <\/div>\n\n          <div class=\"lvn-db-canchi\">\n            <div class=\"lvn-cc-item\">\n              <span class=\"lvn-cc-key\">Ng\u00e0y<\/span>\n              <span class=\"lvn-cc-val\" id=\"lvn-db-cc-day\">\u2014<\/span>\n            <\/div>\n            <div class=\"lvn-cc-item\">\n              <span class=\"lvn-cc-key\">Th\u00e1ng<\/span>\n              <span class=\"lvn-cc-val\" id=\"lvn-db-cc-month\">\u2014<\/span>\n            <\/div>\n            <div class=\"lvn-cc-item lvn-cc-full\">\n              <span class=\"lvn-cc-key\">N\u0103m<\/span>\n              <span class=\"lvn-cc-val lvn-cc-year\" id=\"lvn-db-cc-year\">\u2014<\/span>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"lvn-db-gio\">\n          <div class=\"lvn-db-gio-label\">Gi\u1edd ho\u00e0ng \u0111\u1ea1o<\/div>\n          <div class=\"lvn-db-gio-val\" id=\"lvn-db-gio\">\u2014<\/div>\n        <\/div>\n      <\/div>\n\n      <!-- ============ C\u1ed8T PH\u1ea2I: L\u01af\u1edaI L\u1ecaCH TH\u00c1NG ============ -->\n      <div class=\"lvn-month-block\">\n\n        <!-- \u0110i\u1ec1u h\u01b0\u1edbng -->\n        <div class=\"lvn-nav\">\n          <button type=\"button\" class=\"lvn-nav-btn\" id=\"lvn-prev\" aria-label=\"Th\u00e1ng tr\u01b0\u1edbc\">\u2039<\/button>\n          <div class=\"lvn-nav-selects\">\n            <select class=\"lvn-select\" id=\"lvn-sel-month\"><\/select>\n            <select class=\"lvn-select\" id=\"lvn-sel-year\"><\/select>\n          <\/div>\n          <button type=\"button\" class=\"lvn-nav-btn\" id=\"lvn-next\" aria-label=\"Th\u00e1ng sau\">\u203a<\/button>\n        <\/div>\n\n        <div class=\"lvn-today-row\">\n          <button type=\"button\" class=\"lvn-today-btn\" id=\"lvn-today\">V\u1ec1 h\u00f4m nay<\/button>\n        <\/div>\n\n        <!-- Ti\u00eau \u0111\u1ec1 th\u1ee9 -->\n        <div class=\"lvn-weekdays\">\n          <div>T2<\/div><div>T3<\/div><div>T4<\/div><div>T5<\/div><div>T6<\/div>\n          <div class=\"lvn-sat\">T7<\/div><div class=\"lvn-sun\">CN<\/div>\n        <\/div>\n\n        <!-- L\u01b0\u1edbi ng\u00e0y -->\n        <div class=\"lvn-grid\" id=\"lvn-grid\"><\/div>\n\n        <p class=\"lvn-note\">S\u1ed1 l\u1edbn: ng\u00e0y d\u01b0\u01a1ng \u2022 S\u1ed1 nh\u1ecf: ng\u00e0y \u00e2m \u2022 B\u1ea5m v\u00e0o \u00f4 \u0111\u1ec3 xem chi ti\u1ebft<\/p>\n      <\/div>\n\n    <\/div>\n  <\/div>\n\n  <!-- ===================== CSS C\u00d4 L\u1eacP (ti\u1ec1n t\u1ed1 lvn-) ===================== -->\n  <style>\n    #lvn-calendar {\n      \/* B\u1ea3ng m\u00e0u kh\u1edbp theme bautruc.com (Astra - t\u00f4ng xanh l\u00e1) *\/\n      --lvn-brand: #379237;        \/* xanh \u0111\u1eadm - ch\u1ee7 \u0111\u1ea1o *\/\n      --lvn-brand-2: #54B435;      \/* xanh s\u00e1ng - nh\u1ea5n\/hover *\/\n      --lvn-heading: #0F172A;      \/* navy \u0111\u1eadm - ti\u00eau \u0111\u1ec1 *\/\n      --lvn-brand-soft: #EDFBE2;   \/* n\u1ec1n xanh nh\u1ea1t *\/\n      --lvn-border: #D5EAD8;       \/* vi\u1ec1n xanh nh\u1ea1t *\/\n      --lvn-text: #2F3B40;         \/* ch\u1eef th\u01b0\u1eddng *\/\n      --lvn-muted: #6b7280;\n      --lvn-faint: #9ca3af;\n      box-sizing: border-box;\n      max-width: 980px;\n      margin: 0 auto;\n      \/* K\u1ebf th\u1eeba font c\u1ee7a theme (Poppins\/Roboto) \u0111\u1ec3 \u0111\u1ed3ng b\u1ed9 v\u1edbi to\u00e0n site *\/\n      font-family: inherit;\n      color: var(--lvn-text);\n      line-height: 1.4;\n      \/* Mi\u1ec5n nhi\u1ec5m v\u1edbi theme: b\u1eaft bu\u1ed9c hi\u1ec3n th\u1ecb, kh\u00f4ng b\u1ecb theme \u1ea9n\/gi\u1edbi h\u1ea1n *\/\n      display: block !important;\n      visibility: visible !important;\n      opacity: 1 !important;\n      width: auto !important;\n      height: auto !important;\n      float: none !important;\n    }\n    #lvn-calendar *, #lvn-calendar *::before, #lvn-calendar *::after { box-sizing: border-box; }\n    \/* Trung h\u00f2a style n\u00fat\/select m\u00e0 theme c\u00f3 th\u1ec3 \u00e1p v\u00e0o .entry-content *\/\n    #lvn-calendar button, #lvn-calendar select {\n      font-family: inherit; line-height: normal; text-transform: none;\n      letter-spacing: normal; box-shadow: none; min-height: 0; width: auto;\n      margin: 0; text-align: center;\n    }\n    #lvn-calendar button::before, #lvn-calendar button::after { content: none !important; }\n\n    #lvn-calendar .lvn-container { padding: 8px; }\n\n    \/* Header *\/\n    #lvn-calendar .lvn-header { text-align: center; margin-bottom: 18px; }\n    #lvn-calendar .lvn-title {\n      margin: 0; font-size: 26px; font-weight: 800; letter-spacing: .5px;\n      color: var(--lvn-brand);\n    }\n    #lvn-calendar .lvn-subtitle { margin: 4px 0 0; font-size: 13px; color: var(--lvn-muted); }\n\n    \/* L\u01b0\u1edbi 2 c\u1ed9t ch\u00ednh *\/\n    #lvn-calendar .lvn-grid-main {\n      display: grid !important; grid-template-columns: 1fr; gap: 18px;\n    }\n    @media (min-width: 820px) {\n      #lvn-calendar .lvn-grid-main { grid-template-columns: 5fr 7fr !important; align-items: stretch; }\n    }\n\n    \/* ---------- T\u1edd l\u1ecbch ng\u00e0y ---------- *\/\n    #lvn-calendar .lvn-day-block {\n      background: #fff; border: 1px solid var(--lvn-border); border-radius: 16px;\n      box-shadow: 0 4px 14px rgba(0,0,0,.06); overflow: hidden;\n      display: flex; flex-direction: column;\n    }\n    #lvn-calendar .lvn-db-weekday {\n      background: var(--lvn-brand); color: #fff; text-align: center;\n      padding: 12px; font-size: 17px; font-weight: 600; letter-spacing: .4px;\n    }\n    #lvn-calendar .lvn-db-bignum { text-align: center; padding: 18px 8px 6px; }\n    #lvn-calendar .lvn-db-day {\n      font-size: 88px; line-height: 1; font-weight: 800; color: var(--lvn-brand);\n    }\n    #lvn-calendar .lvn-db-monthyear { font-size: 15px; color: var(--lvn-muted); margin-top: 6px; }\n\n    #lvn-calendar .lvn-db-lunar {\n      margin: 14px 18px; padding: 14px 16px;\n      background: var(--lvn-brand-soft); border: 1px solid var(--lvn-border); border-radius: 12px;\n    }\n    #lvn-calendar .lvn-db-lunar-label { text-align: center; font-size: 13px; color: var(--lvn-muted); }\n    #lvn-calendar .lvn-db-lunar-main { text-align: center; margin-top: 2px; }\n    #lvn-calendar .lvn-db-lunar-day { font-size: 28px; font-weight: 700; color: var(--lvn-text); }\n    #lvn-calendar .lvn-db-lunar-month { font-size: 15px; color: var(--lvn-muted); margin-left: 6px; }\n\n    #lvn-calendar .lvn-db-canchi {\n      display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; margin-top: 14px;\n    }\n    #lvn-calendar .lvn-cc-full { grid-column: 1 \/ -1; }\n    #lvn-calendar .lvn-cc-key { display: block; font-size: 12px; color: var(--lvn-faint); }\n    #lvn-calendar .lvn-cc-val { display: block; font-size: 14px; font-weight: 500; }\n    #lvn-calendar .lvn-cc-year { font-size: 16px; font-weight: 700; color: var(--lvn-brand); }\n\n    #lvn-calendar .lvn-db-gio { margin: auto 18px 18px; }\n    #lvn-calendar .lvn-db-gio-label { font-size: 13px; color: var(--lvn-faint); margin-bottom: 4px; }\n    #lvn-calendar .lvn-db-gio-val { font-size: 13px; color: #374151; line-height: 1.6; }\n\n    \/* ---------- L\u01b0\u1edbi th\u00e1ng ---------- *\/\n    #lvn-calendar .lvn-month-block {\n      background: #fff; border: 1px solid var(--lvn-border); border-radius: 16px;\n      box-shadow: 0 4px 14px rgba(0,0,0,.06); padding: 16px;\n    }\n    #lvn-calendar .lvn-nav {\n      display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px;\n    }\n    #lvn-calendar .lvn-nav-btn {\n      width: 36px; height: 36px; border: none; background: transparent;\n      color: var(--lvn-brand); font-size: 22px; font-weight: 700; line-height: 1;\n      border-radius: 50%; cursor: pointer; transition: background .15s;\n    }\n    #lvn-calendar .lvn-nav-btn:hover { background: var(--lvn-brand-soft); }\n    #lvn-calendar .lvn-nav-selects { display: flex; gap: 8px; }\n    #lvn-calendar .lvn-select {\n      border: 1px solid #d1d5db; border-radius: 8px; padding: 6px 10px;\n      font-size: 14px; font-weight: 500; background: #fff; color: var(--lvn-text);\n      cursor: pointer; -webkit-appearance: none; appearance: none;\n    }\n    #lvn-calendar .lvn-select:focus { outline: 2px solid rgba(55,146,55,.35); outline-offset: 1px; }\n\n    #lvn-calendar .lvn-today-row { text-align: center; margin-bottom: 10px; }\n    #lvn-calendar .lvn-today-btn {\n      font-size: 12px; padding: 4px 14px; border-radius: 999px;\n      border: 1px solid var(--lvn-brand); color: var(--lvn-brand); background: #fff;\n      cursor: pointer; transition: background .15s, color .15s;\n    }\n    #lvn-calendar .lvn-today-btn:hover { background: var(--lvn-brand); color: #fff; }\n\n    #lvn-calendar .lvn-weekdays {\n      display: grid; grid-template-columns: repeat(7, 1fr); text-align: center;\n      font-size: 12px; font-weight: 600; color: var(--lvn-muted); margin-bottom: 6px;\n    }\n    #lvn-calendar .lvn-weekdays .lvn-sat { color: #2563eb; }\n    #lvn-calendar .lvn-weekdays .lvn-sun { color: #dc2626; }\n\n    #lvn-calendar .lvn-grid {\n      display: grid !important; grid-template-columns: repeat(7, 1fr) !important; gap: 4px;\n    }\n    #lvn-calendar .lvn-cell {\n      position: relative; aspect-ratio: 1 \/ 1; min-height: 40px; border: none; background: transparent;\n      border-radius: 10px; cursor: pointer; padding: 0;\n      display: flex !important; flex-direction: column; align-items: center; justify-content: center;\n      transition: background .15s, color .15s, box-shadow .15s;\n    }\n    #lvn-calendar .lvn-cell:hover { background: var(--lvn-brand-soft); }\n    #lvn-calendar .lvn-cell-num { font-size: 16px; font-weight: 600; color: var(--lvn-text); }\n    #lvn-calendar .lvn-cell-lunar {\n      position: absolute; bottom: 3px; right: 5px; font-size: 10px; color: var(--lvn-faint);\n    }\n    \/* m\u00e0u cu\u1ed1i tu\u1ea7n *\/\n    #lvn-calendar .lvn-cell.lvn-sat .lvn-cell-num { color: #2563eb; }\n    #lvn-calendar .lvn-cell.lvn-sun .lvn-cell-num { color: #dc2626; }\n    \/* m\u00f9ng 1 \u00e2m l\u1ecbch *\/\n    #lvn-calendar .lvn-cell .lvn-lunar1 { color: var(--lvn-brand); font-weight: 700; }\n    \/* h\u00f4m nay *\/\n    #lvn-calendar .lvn-cell.lvn-today { box-shadow: inset 0 0 0 2px var(--lvn-brand-2); }\n    \/* \u0111ang ch\u1ecdn *\/\n    #lvn-calendar .lvn-cell.lvn-selected { background: var(--lvn-brand); }\n    #lvn-calendar .lvn-cell.lvn-selected .lvn-cell-num { color: #fff; }\n    #lvn-calendar .lvn-cell.lvn-selected .lvn-cell-lunar { color: #d3f0d6; }\n\n    #lvn-calendar .lvn-note { font-size: 11px; color: var(--lvn-faint); text-align: center; margin: 12px 0 0; }\n\n    @media (max-width: 380px) {\n      #lvn-calendar .lvn-db-day { font-size: 72px; }\n      #lvn-calendar .lvn-cell-num { font-size: 14px; }\n    }\n  <\/style>\n\n  <!-- ===================== JS C\u00d4 L\u1eacP (IIFE) ===================== -->\n  <!-- data-cfasync\/data-no-* : ch\u1eb7n Cloudflare Rocket Loader & c\u00e1c plugin minify\/combine\/defer JS \u0111\u1ee5ng v\u00e0o script n\u00e0y -->\n  <script data-cfasync=\"false\" data-no-optimize=\"1\" data-no-minify=\"1\" data-no-defer=\"1\">\n  (function () {\n    'use strict';\n\n    \/* ===================================================================\n     * THU\u1eacT TO\u00c1N \u00c2M L\u1ecaCH (H\u1ed3 Ng\u1ecdc \u0110\u1ee9c, m\u00fai gi\u1edd +7)\n     * ================================================================= *\/\n    var TZ = 7.0;\n    var CAN = ['Gi\u00e1p','\u1ea4t','B\u00ednh','\u0110inh','M\u1eadu','K\u1ef7','Canh','T\u00e2n','Nh\u00e2m','Qu\u00fd'];\n    var CHI = ['T\u00fd','S\u1eedu','D\u1ea7n','M\u00e3o','Th\u00ecn','T\u1ef5','Ng\u1ecd','M\u00f9i','Th\u00e2n','D\u1eadu','Tu\u1ea5t','H\u1ee3i'];\n    var THU = ['Ch\u1ee7 Nh\u1eadt','Th\u1ee9 Hai','Th\u1ee9 Ba','Th\u1ee9 T\u01b0','Th\u1ee9 N\u0103m','Th\u1ee9 S\u00e1u','Th\u1ee9 B\u1ea3y'];\n\n    function jdFromDate(dd, mm, yy) {\n      var a = Math.floor((14 - mm) \/ 12), y = yy + 4800 - a, m = mm + 12 * a - 3;\n      var jd = dd + Math.floor((153 * m + 2) \/ 5) + 365 * y + Math.floor(y \/ 4)\n             - Math.floor(y \/ 100) + Math.floor(y \/ 400) - 32045;\n      if (jd < 2299161) jd = dd + Math.floor((153 * m + 2) \/ 5) + 365 * y + Math.floor(y \/ 4) - 32083;\n      return jd;\n    }\n    function jdToDate(jd) {\n      var a, b, c, d, e, m;\n      if (jd > 2299160) { a = jd + 32044; b = Math.floor((4 * a + 3) \/ 146097); c = a - Math.floor((b * 146097) \/ 4); }\n      else { b = 0; c = jd + 32082; }\n      d = Math.floor((4 * c + 3) \/ 1461); e = c - Math.floor((1461 * d) \/ 4); m = Math.floor((5 * e + 2) \/ 153);\n      return {\n        day: e - Math.floor((153 * m + 2) \/ 5) + 1,\n        month: m + 3 - 12 * Math.floor(m \/ 10),\n        year: b * 100 + d - 4800 + Math.floor(m \/ 10)\n      };\n    }\n    function newMoon(k) {\n      var T = k \/ 1236.85, T2 = T * T, T3 = T2 * T, dr = Math.PI \/ 180;\n      var Jd1 = 2415020.75933 + 29.53058868 * k + 0.0001178 * T2 - 0.000000155 * T3;\n      Jd1 += 0.00033 * Math.sin((166.56 + 132.87 * T - 0.009173 * T2) * dr);\n      var M = 359.2242 + 29.10535608 * k - 0.0000333 * T2 - 0.00000347 * T3;\n      var Mpr = 306.0253 + 385.81691806 * k + 0.0107306 * T2 + 0.00001236 * T3;\n      var F = 21.2964 + 390.67050646 * k - 0.0016528 * T2 - 0.00000239 * T3;\n      var C1 = (0.1734 - 0.000393 * T) * Math.sin(M * dr) + 0.0021 * Math.sin(2 * dr * M);\n      C1 = C1 - 0.4068 * Math.sin(Mpr * dr) + 0.0161 * Math.sin(dr * 2 * Mpr) - 0.0004 * Math.sin(dr * 3 * Mpr);\n      C1 = C1 + 0.0104 * Math.sin(dr * 2 * F) - 0.0051 * Math.sin(dr * (M + Mpr)) - 0.0074 * Math.sin(dr * (M - Mpr));\n      C1 = C1 + 0.0004 * Math.sin(dr * (2 * F + M)) - 0.0004 * Math.sin(dr * (2 * F - M)) - 0.0006 * Math.sin(dr * (2 * F + Mpr));\n      C1 = C1 + 0.001 * Math.sin(dr * (2 * F - Mpr)) + 0.0005 * Math.sin(dr * (2 * Mpr + M));\n      var deltat = (T < -11)\n        ? 0.001 + 0.000839 * T + 0.0002261 * T2 - 0.00000845 * T3 - 0.000000081 * T * T3\n        : -0.000278 + 0.000265 * T + 0.000262 * T2;\n      return Jd1 + C1 - deltat;\n    }\n    function sunLongitude(jdn) {\n      var T = (jdn - 2451545.0) \/ 36525, T2 = T * T, dr = Math.PI \/ 180;\n      var M = 357.5291 + 35999.0503 * T - 0.0001559 * T2 - 0.00000048 * T * T2;\n      var L0 = 280.46645 + 36000.76983 * T + 0.0003032 * T2;\n      var DL = (1.9146 - 0.004817 * T - 0.000014 * T2) * Math.sin(dr * M)\n             + (0.019993 - 0.000101 * T) * Math.sin(dr * 2 * M) + 0.00029 * Math.sin(dr * 3 * M);\n      var L = (L0 + DL) * dr;\n      L = L - Math.PI * 2 * Math.floor(L \/ (Math.PI * 2));\n      return Math.floor((L \/ Math.PI) * 6);\n    }\n    function getNewMoonDay(k) { return Math.floor(newMoon(k) + 0.5 + TZ \/ 24); }\n    function getLunarMonth11(yy) {\n      var off = jdFromDate(31, 12, yy) - 2415021, k = Math.floor(off \/ 29.530588853), nm = getNewMoonDay(k);\n      if (sunLongitude(nm) >= 9) nm = getNewMoonDay(k - 1);\n      return nm;\n    }\n    function getLeapMonthOffset(a11) {\n      var k = Math.floor((a11 - 2415021.076998695) \/ 29.530588853 + 0.5), last, i = 1, arc = sunLongitude(getNewMoonDay(k + i));\n      do { last = arc; i++; arc = sunLongitude(getNewMoonDay(k + i)); } while (arc !== last ? i < 14 : false);\n      return i - 1;\n    }\n    function convertSolar2Lunar(dd, mm, yy) {\n      var dayNumber = jdFromDate(dd, mm, yy);\n      var k = Math.floor((dayNumber - 2415021.076998695) \/ 29.530588853);\n      var monthStart = getNewMoonDay(k + 1);\n      if (monthStart > dayNumber) monthStart = getNewMoonDay(k);\n      var a11 = getLunarMonth11(yy), b11 = a11, lunarYear;\n      if (a11 >= monthStart) { lunarYear = yy; a11 = getLunarMonth11(yy - 1); }\n      else { lunarYear = yy + 1; b11 = getLunarMonth11(yy + 1); }\n      var lunarDay = dayNumber - monthStart + 1;\n      var diff = Math.floor((monthStart - a11) \/ 29);\n      var lunarLeap = 0, lunarMonth = diff + 11;\n      if (b11 - a11 > 365) {\n        var leapMonthDiff = getLeapMonthOffset(a11);\n        if (diff >= leapMonthDiff) { lunarMonth = diff + 10; if (diff === leapMonthDiff) lunarLeap = 1; }\n      }\n      if (lunarMonth > 12) lunarMonth -= 12;\n      if (lunarMonth >= 11) { if (diff < 4) lunarYear -= 1; }\n      return [lunarDay, lunarMonth, lunarYear, lunarLeap];\n    }\n    function getYearCanChi(year) { return CAN[(year + 6) % 10] + ' ' + CHI[(year + 8) % 12]; }\n    function getMonthCanChi(lm, ly) { return CAN[(ly * 12 + lm + 3) % 10] + ' ' + CHI[(lm + 1) % 12]; }\n    function getDayCanChi(jd) { return CAN[(jd + 9) % 10] + ' ' + CHI[(jd + 1) % 12]; }\n\n    var GIO_HD = ['110100101100','001101001011','110011010010','101100110100','001011001101','010010110011'];\n    var HOUR_RANGE = ['23-1','1-3','3-5','5-7','7-9','9-11','11-13','13-15','15-17','17-19','19-21','21-23'];\n    function getGioHoangDao(jd) {\n      var s = GIO_HD[((jd + 1) % 12) % 6], res = [];\n      for (var i = 0; i < 12; i++) if (s.charAt(i) === '1') res.push(CHI[i] + ' (' + HOUR_RANGE[i] + 'h)');\n      return res;\n    }\n    function getLunarDate(day, month, year) {\n      var l = convertSolar2Lunar(day, month, year), jd = jdFromDate(day, month, year);\n      var lunarDay = l[0], lunarMonth = l[1], lunarYear = l[2], isLeap = l[3] === 1;\n      return {\n        day: lunarDay, month: lunarMonth, year: lunarYear, isLeap: isLeap, julianDay: jd,\n        dayName: getDayCanChi(jd), monthName: getMonthCanChi(lunarMonth, lunarYear),\n        yearName: getYearCanChi(lunarYear), gioHoangDao: getGioHoangDao(jd),\n        weekday: THU[(jd + 1) % 7]\n      };\n    }\n\n    \/* ===================================================================\n     * GIAO DI\u1ec6N\n     * ================================================================= *\/\n    function initUI() {\n    var root = document.getElementById('lvn-calendar');\n    if (!root) return;\n    var $ = function (id) { return root.querySelector('#' + id); };\n    \/\/ L\u01afU \u00dd: WordPress (wptexturize) m\u00e3 h\u00f3a to\u00e1n t\u1eed logic AND th\u00e0nh th\u1ef1c th\u1ec3 HTML\n    \/\/ l\u00e0m h\u1ecfng JS. V\u00ec v\u1eady KH\u00d4NG d\u00f9ng to\u00e1n t\u1eed AND\/OR; thay b\u1eb1ng h\u00e0m allTrue() d\u01b0\u1edbi \u0111\u00e2y.\n    function allTrue() { for (var i = 0; i < arguments.length; i++) { if (!arguments[i]) return false; } return true; }\n\n    var today = new Date();\n    var startY = 1900, endY = 2100;\n    var state = {\n      viewMonth: today.getMonth() + 1, viewYear: today.getFullYear(),\n      selDay: today.getDate(), selMonth: today.getMonth() + 1, selYear: today.getFullYear()\n    };\n\n    \/\/ Dropdown\n    var selMonth = $('lvn-sel-month'), selYear = $('lvn-sel-year');\n    for (var m = 1; m <= 12; m++) selMonth.appendChild(new Option('Th\u00e1ng ' + m, m));\n    for (var y = startY; y <= endY; y++) selYear.appendChild(new Option(y, y));\n\n    function renderDayBlock(d, mo, yr) {\n      var info = getLunarDate(d, mo, yr);\n      $('lvn-db-weekday').textContent = info.weekday;\n      $('lvn-db-day').textContent = d;\n      $('lvn-db-monthyear').textContent = 'Th\u00e1ng ' + mo + ' \/ ' + yr;\n      $('lvn-db-lunar-day').textContent = 'Ng\u00e0y ' + info.day;\n      $('lvn-db-lunar-month').textContent = 'th\u00e1ng ' + info.month + (info.isLeap ? ' (nhu\u1eadn)' : '');\n      $('lvn-db-cc-day').textContent = info.dayName;\n      $('lvn-db-cc-month').textContent = info.monthName;\n      $('lvn-db-cc-year').textContent = info.yearName;\n      var gioTxt = info.gioHoangDao.join(' \u2022 ');\n      $('lvn-db-gio').textContent = gioTxt ? gioTxt : '\u2014';\n    }\n\n    function renderGrid() {\n      selMonth.value = state.viewMonth;\n      selYear.value = state.viewYear;\n      var grid = $('lvn-grid');\n      grid.innerHTML = '';\n\n      var daysInMonth = new Date(state.viewYear, state.viewMonth, 0).getDate();\n      var firstDow = new Date(state.viewYear, state.viewMonth - 1, 1).getDay();\n      var startCol = (firstDow + 6) % 7; \/\/ T2 = 0\n\n      for (var i = 0; i < startCol; i++) grid.appendChild(document.createElement('div'));\n\n      for (var d = 1; d <= daysInMonth; d++) {\n        (function (dd) {\n          var info = getLunarDate(dd, state.viewMonth, state.viewYear);\n          var dow = (startCol + dd - 1) % 7;\n          var cell = document.createElement('button');\n          cell.type = 'button';\n          cell.className = 'lvn-cell';\n          if (dow === 5) cell.className += ' lvn-sat';\n          if (dow === 6) cell.className += ' lvn-sun';\n\n          var isToday = allTrue(dd === today.getDate(), state.viewMonth === today.getMonth() + 1, state.viewYear === today.getFullYear());\n          var isSelected = allTrue(dd === state.selDay, state.viewMonth === state.selMonth, state.viewYear === state.selYear);\n          if (isToday) cell.className += ' lvn-today';\n          if (isSelected) cell.className += ' lvn-selected';\n\n          var lunarTxt = info.day === 1 ? (info.day + '\/' + info.month) : String(info.day);\n          var lunarCls = allTrue(info.day === 1, !isSelected) ? 'lvn-cell-lunar lvn-lunar1' : 'lvn-cell-lunar';\n\n          cell.innerHTML = '<span class=\"lvn-cell-num\">' + dd + '<\/span>' +\n                           '<span class=\"' + lunarCls + '\">' + lunarTxt + '<\/span>';\n\n          cell.addEventListener('click', function () {\n            state.selDay = dd; state.selMonth = state.viewMonth; state.selYear = state.viewYear;\n            renderDayBlock(dd, state.viewMonth, state.viewYear);\n            renderGrid();\n          });\n          grid.appendChild(cell);\n        })(d);\n      }\n    }\n\n    function changeMonth(delta) {\n      var mo = state.viewMonth + delta, yr = state.viewYear;\n      if (mo < 1) { mo = 12; yr--; } else if (mo > 12) { mo = 1; yr++; }\n      if (yr < startY) { yr = startY; mo = 1; }\n      if (yr > endY) { yr = endY; mo = 12; }\n      state.viewMonth = mo; state.viewYear = yr;\n      renderGrid();\n    }\n\n    $('lvn-prev').addEventListener('click', function () { changeMonth(-1); });\n    $('lvn-next').addEventListener('click', function () { changeMonth(1); });\n    selMonth.addEventListener('change', function () { state.viewMonth = +this.value; renderGrid(); });\n    selYear.addEventListener('change', function () { state.viewYear = +this.value; renderGrid(); });\n    $('lvn-today').addEventListener('click', function () {\n      state.viewMonth = today.getMonth() + 1; state.viewYear = today.getFullYear();\n      state.selDay = today.getDate(); state.selMonth = state.viewMonth; state.selYear = state.viewYear;\n      renderDayBlock(state.selDay, state.selMonth, state.selYear);\n      renderGrid();\n    });\n\n    renderDayBlock(state.selDay, state.selMonth, state.selYear);\n    renderGrid();\n    } \/\/ end initUI\n\n    \/\/ Ch\u1ea1y ngay n\u1ebfu DOM \u0111\u00e3 s\u1eb5n s\u00e0ng; n\u1ebfu ch\u01b0a (script b\u1ecb d\u1eddi l\u00ean <head>\/defer) th\u00ec ch\u1edd\n    if (document.readyState === 'loading') {\n      document.addEventListener('DOMContentLoaded', initUI);\n    } else {\n      initUI();\n    }\n  })();\n  <\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>L\u1ecaCH V\u1ea0N NI\u00caN \u00c2m &amp; D\u01b0\u01a1ng l\u1ecbch Vi\u1ec7t Nam \u2014 &#8212; Th\u00e1ng &#8212; \/ &#8212;- \u00c2m l\u1ecbch &#8212; th\u00e1ng &#8212; [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-10303","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.bautruc.com\/en\/wp-json\/wp\/v2\/pages\/10303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bautruc.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bautruc.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bautruc.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bautruc.com\/en\/wp-json\/wp\/v2\/comments?post=10303"}],"version-history":[{"count":7,"href":"https:\/\/www.bautruc.com\/en\/wp-json\/wp\/v2\/pages\/10303\/revisions"}],"predecessor-version":[{"id":10310,"href":"https:\/\/www.bautruc.com\/en\/wp-json\/wp\/v2\/pages\/10303\/revisions\/10310"}],"wp:attachment":[{"href":"https:\/\/www.bautruc.com\/en\/wp-json\/wp\/v2\/media?parent=10303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}