From 5c3b67a6485ed916c5e0e12925ffca4a95f0608e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=B9=8F?= Date: Wed, 2 Mar 2022 16:08:10 +0800 Subject: [PATCH] fix --- js/zodiacsearch.js | 151 --------------------------------------------- 1 file changed, 151 deletions(-) diff --git a/js/zodiacsearch.js b/js/zodiacsearch.js index c5b582e..56d9176 100644 --- a/js/zodiacsearch.js +++ b/js/zodiacsearch.js @@ -55,8 +55,6 @@ function dozodiacsearch() { /** * 农历1900-2100的润大小信息表 - * @Array Of Property - * @return Hex */ lunarInfo: [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2,//1900-1909 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977,//1910-1919 @@ -80,40 +78,11 @@ function dozodiacsearch() { 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252,//2090-2099 0x0d520],//2100 - /** - * 公历每个月份的天数普通表 - * @Array Of Property - * @return Number - */ solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], - - /** - * 天干地支之天干速查表 - * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"] - * @return Cn string - */ Gan: ["\u7532", "\u4e59", "\u4e19", "\u4e01", "\u620a", "\u5df1", "\u5e9a", "\u8f9b", "\u58ec", "\u7678"], - - /** - * 天干地支之地支速查表 - * @Array Of Property - * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"] - * @return Cn string - */ Zhi: ["\u5b50", "\u4e11", "\u5bc5", "\u536f", "\u8fb0", "\u5df3", "\u5348", "\u672a", "\u7533", "\u9149", "\u620c", "\u4ea5"], - - /** - * 天干地支之地支速查表<=>生肖 - * @Array Of Property - * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"] - * @return Cn string - */ Animals: ["\u9f20", "\u725b", "\u864e", "\u5154", "\u9f99", "\u86c7", "\u9a6c", "\u7f8a", "\u7334", "\u9e21", "\u72d7", "\u732a"], Zodiac: ["Rat","Ox","Tiger","Rabbit","Dragon","Snake","Horse","Goat","Monkey","Rooster","Dog","Pig"], - - /** - * 农历节日 - */ lFestival: { '12-30': {title: '除夕'}, '1-1': {title: '春节'}, @@ -130,54 +99,15 @@ function dozodiacsearch() { '12-23': {title: '北方小年'}, '12-24': {title: '南方小年'}, }, - - - /** - * 返回默认定义的内容里节日 - */ getLunarFestival() { return this.lFestival }, - - - /** - * - * @param param {Object} 按照lFestival的格式输入数据,设置农历节日 - */ setLunarFestival(param = {}) { this.lFestival = param }, - - /** - * 数字转中文速查表 - * @Array Of Property - * @trans ['日','一','二','三','四','五','六','七','八','九','十'] - * @return Cn string - */ nStr1: ["\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d", "\u4e03", "\u516b", "\u4e5d", "\u5341"], - - /** - * 日期转农历称呼速查表 - * @Array Of Property - * @trans ['初','十','廿','卅'] - * @return Cn string - */ nStr2: ["\u521d", "\u5341", "\u5eff", "\u5345"], - - /** - * 月份转农历称呼速查表 - * @Array Of Property - * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊'] - * @return Cn string - */ nStr3: ["\u6b63", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d", "\u4e03", "\u516b", "\u4e5d", "\u5341", "\u51ac", "\u814a"], - - /** - * 返回农历y年一整年的总天数 - * @param y lunar Year - * @return Number - * @eg:var count = calendar.lYearDays(1987) ;//count=387 - */ lYearDays: function (y) { let i, sum = 348; for (i = 0x8000; i > 0x8; i >>= 1) { @@ -185,51 +115,21 @@ function dozodiacsearch() { } return (sum + this.leapDays(y)); }, - - /** - * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0 - * @param y lunar Year - * @return Number (0-12) - * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6 - */ leapMonth: function (y) { //闰字编码 \u95f0 return (this.lunarInfo[y - 1900] & 0xf); }, - - /** - * 返回农历y年闰月的天数 若该年没有闰月则返回0 - * @param y lunar Year - * @return Number (0、29、30) - * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29 - */ leapDays: function (y) { if (this.leapMonth(y)) { return ((this.lunarInfo[y - 1900] & 0x10000) ? 30 : 29); } return (0); }, - - /** - * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法 - * @param y lunar Year - * @param m lunar Month - * @return Number (-1、29、30) - * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29 - */ monthDays: function (y, m) { if (m > 12 || m < 1) { return -1 }//月份参数从1至12,参数错误返回-1 return ((this.lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29); }, - - /** - * 返回公历(!)y年m月的天数 - * @param y solar Year - * @param m solar Month - * @return Number (-1、28、29、30、31) - * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30 - */ solarDays: function (y, m) { if (m > 12 || m < 1) { return -1 @@ -241,14 +141,6 @@ function dozodiacsearch() { return (this.solarMonth[ms]); } }, - - - /** - * 传入农历数字月份返回汉语通俗表示法 - * @param m lunar month - * @return Cn string - * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月' - */ toChinaMonth: function (m) { // 月 => \u6708 if (m > 12 || m < 1) { return -1 @@ -257,13 +149,6 @@ function dozodiacsearch() { s += "\u6708";//加上月字 return s; }, - - /** - * 传入农历日期数字返回汉字表示法 - * @param d lunar day - * @return Cn string - * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一' - */ toChinaDay: function (d) { //日 => \u65e5 let s; switch (d) { @@ -282,30 +167,12 @@ function dozodiacsearch() { } return (s); }, - - /** - * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春” - * @param y year - * @return Cn string - * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔' - */ getAnimal: function (y) { return this.Animals[(y - 4) % 12] }, - getZodiac :function (y){ return this.Zodiac[(y-4) % 12] }, - - /** - * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON - * !important! 公历参数区间1900.1.31~2100.12.31 - * @param yPara solar year - * @param mPara solar month - * @param dPara solar day - * @return JSON object - * @eg:console.log(calendar.solar2lunar(1987,11,01)); - */ solar2lunar: function (yPara, mPara, dPara) { let y = parseInt(yPara); let m = parseInt(mPara); @@ -318,7 +185,6 @@ function dozodiacsearch() { if (y === 1900 && m === 1 && d < 31) { return -1; } - //未传参 获得当天 let objDate; if (!y) { @@ -340,17 +206,13 @@ function dozodiacsearch() { offset += temp; i--; } - - //是否今天 let isTodayObj = new Date(), isToday = false; if (isTodayObj.getFullYear() === y && isTodayObj.getMonth() + 1 === m && isTodayObj.getDate() === d) { isToday = true; } - //星期几 let nWeek = objDate.getDay(), cWeek = this.nStr1[nWeek]; - //数字表示周几顺应天朝周一开始的惯例 if (nWeek === 0) { nWeek = 7; } @@ -358,7 +220,6 @@ function dozodiacsearch() { const year = i; leap = this.leapMonth(i); //闰哪个月 let isLeap = false; - //效验闰月 for (i = 1; i < 13 && offset > 0; i++) { //闰月 @@ -388,26 +249,14 @@ function dozodiacsearch() { offset += temp; --i; } - //农历月 const month = i; - //农历日 const day = offset + 1; - //天干地支处理 const sm = m - 1; - - //日柱 当月一日与 1900/1/1 相差天数 const dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10; - const solarDate = y + '-' + m + '-' + d; const lunarDate = year + '-' + month + '-' + day; - const lFestival = this.lFestival; let lunarFestivalDate = month + '-' + day; - - // 农历节日修正:农历12月小月则29号除夕,大月则30号除夕 - // 此处取巧修正:当前为农历12月29号时增加一次判断并且把lunarFestivalDate设置为12-30以正确取得除夕 - // 天朝农历节日遇闰月过前不过后的原则,此处取农历12月天数不考虑闰月 - // 农历润12月在本工具支持的200年区间内仅1574年出现 if (month === 12 && day === 29 && this.monthDays(year, month) === 29) { lunarFestivalDate = '12-30'; }