function t(t, r) { return (t >> r) & 1; } module.exports = { getLunar: function () { var r; var a; var e; var o; var h = [268949, 3402, 3493, 133973, 1386, 464219, 605, 2349, 334123, 2709, 2890, 267946, 2773, 592565, 1210, 2651, 395863, 1323, 2707, 265877]; var c = new Date(); var f = false; var u = c.getYear(); if (u < 1900) { u += 1900; } var g = 365 * (u - 2001) + Math.floor((u - 2001) / 4) + [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334][c.getMonth()] + c.getDate() - 23; for (c.getYear() % 4 == 0 && c.getMonth() > 1 && g++, m = 0; ; m++) { for (k = h[m] < 4095 ? 11 : 12, n = k; n >= 0; n--) { if (g <= 29 + t(h[m], n)) { f = true; break; } g = g - 29 - t(h[m], n); } if (f) { break; } } r = 2001 + m; a = k - n + 1; e = g; if (12 == k) { if (a == Math.floor(h[m] / 65536) + 1) { a = 1 - a; } if (a > Math.floor(h[m] / 65536) + 1) { a--; } } o = Math.floor((c.getHours() + 3) / 2); u = ''; u += '甲乙丙丁戊己庚辛壬癸'.charAt((r - 4) % 10); u += '子丑寅卯辰巳午未申酉戌亥'.charAt((r - 4) % 12); u += '年('; u += '鼠牛虎兔龙蛇马羊猴鸡狗猪'.charAt((r - 4) % 12); u += ') '; a < 1 ? ((u += '闰'), (u += '正二三四五六七八九十冬腊'.charAt(-a - 1))) : (u += '正二三四五六七八九十冬腊'.charAt(a - 1)); u += '月'; u += e < 11 ? '初' : e < 20 ? '十' : e < 30 ? '廿' : '卅'; (e % 10 == 0 && 10 != e) || (u += '一二三四五六七八九十'.charAt((e - 1) % 10)); u += ' '; if (13 == o) { u += '夜'; } u += '子丑寅卯辰巳午未申酉戌亥'.charAt((o - 1) % 12); return (u += '时'); } };