| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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 += '时');
- }
- };
|