Copy code The code is as follows: <br> var lunarInfo = new Array( <br>0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, <br>0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, <br>0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, <br>0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, <br>0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, <br>0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5d0, 0x14573, 0x052d0, 0x0a9a8, 0x0e950, 0x06aa0, <br>0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, <br>0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b5a0, 0x195a6, <br>0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, <br>0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0, <br>0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, <br>0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, <br>0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, <br>0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, <br>0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0) <br> var Animals = new Array("鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"); <br> var Gan = new Array("甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"); <br> var Zhi = new Array("子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"); <br> var now = new Date(); <br> var SY = now.getFullYear(); <br> var SM = now.getMonth(); <br> var SD = now.getDate(); <br><br> //==== 传入 offset 传回干支, 0=甲子 <br> function cyclical(num) { return (Gan[num % 10] Zhi[num % 12]) } <br><br> //==== 传回农历 y年的总天数 <br> function lYearDays(y) { <br> var i, sum = 348 <br> for (i = 0x8000; i > 0x8; i >>= 1) sum = (lunarInfo[y - 1900] & i) ? 1 : 0 <br> return (sum leapDays(y)) <br> } <br><br> //==== 传回农历 y年闰月的天数 <br> function leapDays(y) { <br> if (leapMonth(y)) return ((lunarInfo[y - 1900] & 0x10000) ? 30 : 29) <br> else return (0) <br> } <br><br> //==== 传回农历 y年闰哪个月 1-12 , 没闰传回 0 <br> function leapMonth(y) { return (lunarInfo[y - 1900] & 0xf) } <br><br> //====================================== 传回农历 y年m月的总天数 <br> function monthDays(y, m) { return ((lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29) }<br><br> //==== Calculate the lunar calendar, pass in the date object, return the lunar date object <br> // The properties of this object are .year .month .day .isLeap .yearCyl .dayCyl .monCyl <br> Function Lunar(objDate) { <br> var i, leap = 0, temp = 0 <br> var baseDate = new Date(1900, 0, 31) <br> var offset = (objDate - baseDate) / 864 00000 <br><br> this.dayCyl = offset 40 <br> this.monCyl = 14 <br><br> for (i = 1900; i < 2050 && offset > 0; i ) { <br> temp = lYearDays( i) <br> offset -= temp <br> this.monCyl = 12 <br> } <br> if (offset < 0) { <BR> offset = temp; <BR> i--; <BR> this .monCyl -= 12 <BR> Month <br> this.isLeap = false<br><BR> for (i = 1; i < 13 && offset > 0; i ) { <br> //Leap month <br> leap 1) && this.isLeap == false) <br> , i);} <br> // Lie the month <br> if (this.isleap == true && i == (leap 1)) this.isleap = false <br> <br> offset- = temp <br> . If (this. isLeap) <br> { this.isLeap = false; } <br> else<br> { this.isLeap = true; --i; --this.monCyl; } <br><br> if (offset < 0 ) { offset = temp; --i; --this.monCyl; } <br><br> this.month = i <BR> this.day = offset 1 <BR> }<br><br> function YYMMDD() { <BR> var cl = '<font color="#0000df" STYLE="font-size:9pt;">'; <br> if (now.getDay( ) == 0) cl = '<font color="#c00000" STYLE="font-size:9pt;">'; <br> if (now.getDay() == 6) cl = '< font color="#00c000" STYLE="font-size:9pt;">'; <br> return (cl SY 'Year' (SM 1) 'Month' SD 'Day</font>'); <br> <br> var cl = '<font color="#000000" STYLE="font-size:9pt;">'; <br> if (now.getDay() == 0) cl = '<font color="#ff0000" STYLE="font-size:9pt;">'; <br> if (now.getDay() == 6) cl = '<font color="#ff0000" STYLE="font -size:9pt;">'; <br> return (cl day[now.getDay()] '</font>'); <br> > function cDay(m, d) { <br> var nStr1 = new Array('Day', '一', '二', '三', '四', '五', '六', '七', 'Eight', 'Nine', 'Ten'); <br> var nStr2 = new Array('Chu', 'Ten', 'Twenty', '卅', ''); <br> var s; <br> = 'Tenth day'; break; <br> case 20: s = 'twenty'; break; <br> case 30: s = 'thirty'; break; <br> default: s = nStr2[Math.floor (d / 10)]; s = nStr1[d % 10]; var sDObj = new Date(SY, SM, SD); <br> var lDObj = new Lunar(sDObj); <br> var cl = '<font color="#000066" STYLE="font-size:9pt;">' ; <br> // Lunar calendar BB' (cld[d].isLeap?'Leap':' ') cld[d].lMonth ' month ' cld[d].lDay ' day cDay(lDObj.month, lDObj.day); <br> return (cl tt '</font>'); <br> <br> function solarDay3() { <br> var sTermInfo = new Array(0, 21208, 42467, 63836, 85337, 107014, 128867, 150921, 173149, <br><br> 195551, 218072, 240693, 263343, 285989 , 308563, 331033, 353350, 375494, 397447, 419210, <br><br>440795, 462224, 483532, 504758) <br> var solarTerm = new Array("小汉" , "big cold", "beginning of spring", "rain ", "Jingzhe", "Vernal Equinox", "Qingming", "Grain Rain", "Beginning of Summer", "Xiaoman", "Grain of Ear", "Summer Solstice", "Small Heat", "Great Heat", "Beginning of Autumn", "End of Heat", "White Dew", "Autumnal Equinox", "Cold Dew", "Frost Descent", "Beginning of Winter", "Light Snow", "Heavy Snow", "Winter Solstice") <br> . Festival", "0505 Dragon Boat Festival", "0707 Chinese Valentine's Day", "0715 Chinese Ghost Festival", "0815 Mid-Autumn Festival", "0909 Double Ninth Festival", "1208 Laba Festival", "1224 Xiaonian", "0100* New Year's Eve") <br> var sFtv = new Array("0101*New Year's Day", "0214 Valentine's Day", "0308 Women's Day", "0312 Arbor Day", "0315 Consumer Rights Day", "0401 April Fool's Day", "0501 Labor Day", "0504 Youth Day", "0512 Nurses Day", "0601 Children's Day", "0701 Party Founding Day to commemorate the return of Hong Kong", <br> "0801 Army Day", "0808 Father's Day", " 0909 Nansheng.com Anniversary", "0910 Teacher's Day", "0928 Confucius' Birthday", "1001*National Day", <br> "1006 Elder's Day", "1024 United Nations Day", "1112 Sun Yat-sen's Birthday", " 1220 Commemoration of Macau's Return", "1225 Christmas", "1226 Chairman Mao's Birthday") <br><br> var sDObj = new Date(SY, SM, SD); <br> var lDObj = new Lunar(sDObj); <br> var lDPOS = new Array(3) <br> var festival = '', solarTerms = '', solarFestival = '', lunarFestival = '', tmp1, tmp2; <br> //Lunar Festival <br> for (i in lFtv) <br> if (lFtv[i].match(/^(d{2})(.{2})([s*])(. )$/)) { <br> tmp1 = Number(RegExp.$1) - lDObj.month <br> tmp2 = Number(RegExp.$2) - lDObj.day <br> if (tmp1 == 0 && tmp2 == 0) lunarFestival = RegExp.$4 🎜> 🎜> )$/)) { <br> tmp1 = Number(RegExp.$1) - (SM 1) <br> tmp2 = Number(RegExp.$2) - SD <br> if (tmp 1 == 0 && tmp2 == 0) solarFestival = RegExp.$4 <br> <br> //节气 <br> tmp1 = new Date((31556925974.7 * (SY - 1900) sTermInfo[SM * 2 1] * 60000) Date.UTC(1900, 0, 6, 2, 5)) <br> tmp2 = tmp1.getUTCDate() <br> if (tmp2 == SD) solarTerms = solarTerm[SM * 2 1] <br> tmp1 = new Date((31556925974.7 * (SY - 1900) sTermInfo[SM * 2] * 60000) Date.UTC(1900, 0, 6, 2, 5)) <br> tmp2 = tmp1.getUTCDate() <br> if (tmp2 == SD) solarTerms = solarTerm[SM * 2] <br><br> if (solarTerms == '' && solarFestival == '' && lunarFestival == '') <br> festival = ''; <br> else<br> festival = '<FONT COLOR="#ff0000" STYLE="font-size:9pt;">' solarTerms ' ' solarFestival ' ' lunarFestival '</FONT>'; <br><br> var cl = '<font color="#000066" STYLE="font-size:9pt;">'; <br> return (cl festival '</font>'); <br> } <br> function setCalendar() { <br><br> document.write(YYMMDD() ' ' weekday() ' ' solarDay2() ' ' solarDay3()); <br> } <br><br> setCalendar(); <br> //--> <br><br> //获取当月的阳历天数 <br> function getNowMonthDays(year, month) { <br> var isy = false; <br> if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) isy = true; <br> switch (month) { <br> case 1: <br> case 3: <br> case 5: <br> case 7: <br> case 8: <br> case 10: <br> case 12: <br> return 31; <br> case 4: <br> case 6: <br> case 9: <br> case 11: <br> return 30; <br> case 2: <br> return isy ? 28 : 29; <br> } <br> }<br> 🎜> var startweek = week 7 - tempnum; <br> return startweek > 7 ? startweek % 7 : startweek; <br> } <br><br> function getSolar Day(year, month, day ) { <br> var sDObj = new Date(year, month, day); <br> var lDObj = new Lunar(sDObj); <br> var sDObj = new Date (cld[d].isLeap?'Leap': ' ') cld[d].lMonth ' month ' cld[d].lDay ' day <br> return cDay(lDObj.month, lDObj.day); <br> 🎜> function showMonth() { <br> debugger; <br> var days = getNowMonthDays(SY, SM 1); <br> var startweek = getStartWeek(); <br> var html = "<tr><td> ;Monday</td><td>Tuesday</td><td>Wednesday</td><td>Thursday</td><td>Friday</td>< td>Saturday</td><td>Sunday</td></tr><tr>"; startweek; i ) { <br> html = "<td> </td>"; index; << ;br>" getSolarDay (SY, SM, i) "</td>"; <br> 7 == 0) { <br> <br> html = "</tr>"; <br> <br><br><br> </div>