支撑五行八卦公历公历万年历节沐日红字突显记事等功效的日历插件,万年历算法

要求:

  1图片 1<!–
  2图片 2图片 3/**//*****************************************************************************
  3图片 4                                   日期资料
  4图片 5*****************************************************************************/
  5图片 6
  6图片 7var lunarInfo=new Array(
  7图片 80x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,
  8图片 90x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,
  9图片 100x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,
 10图片 110x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,
 11图片 120x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,
 12图片 130x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,
 13图片 140x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,
 14图片 150x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6,
 15图片 160x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,
 16图片 170x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,
 17图片 180x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,
 18图片 190x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,
 19图片 200x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,
 20图片 210x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,
 21图片 220x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0)
 22图片 23
 23图片 24var solarMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
 24图片 25var Gan=new Array(“甲”,”乙”,”丙”,”丁”,”戊”,”己”,”庚”,”辛”,”壬”,”癸”);
 25图片 26var Zhi=new Array(“子”,”丑”,”寅”,”卯”,”辰”,”巳”,”午”,”未”,”申”,”酉”,”戌”,”亥”);
 26图片 27var Animals=new Array(“鼠”,”牛”,”虎”,”兔”,”龙”,”蛇”,”马”,”羊”,”猴”,”鸡”,”狗”,”猪”);
 27图片 28var solarTerm = new Array(“小寒”,”大寒”,”立春”,”雨水”,”惊蛰”,”春分”,”清明”,”谷雨”,”立夏”,”小满”,”芒种”,”夏至”,”小暑”,”大暑”,”立秋”,”处暑”,”白露”,”秋分”,”寒露”,”霜降”,”立冬”,”小雪”,”大雪”,”冬至”)
 28图片 29var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758)
 29图片 30var nStr1 = new Array(‘日’,’一’,’二’,’三’,’四’,’五’,’六’,’七’,’八’,’九’,’十’)
 30图片 31var nStr2 = new Array(‘初’,’十’,’廿’,’卅’,’ ’)
 31图片 32var monthName = new Array(“1 月”,”2 月”,”3 月”,”4 月”,”5 月”,”6 月”,”7 月”,”8 月”,”9 月”,”10 月”,”11 月”,”12 月”);
 32图片 33
 33图片 34//国历节日 *表示放沐日
 34图片 35var sFtv = new Array(
 35图片 36“0101*元旦”,
 36图片 37“0214 情人节”,
 37图片 38“0308 妇女节”,
 38图片 39“0312 植树节”,
 39图片 40“0315 消费者权益日”,
 40图片 41“0401 愚人节”,
 41图片 42“0501 劳动节”,
 42图片 43“0504 青年节”,
 43图片 44“0512 护士节”,
 44图片 45“0601 儿童节”,
 45图片 46“0701 建党节”,
 46图片 47“0801 建军节”,
 47图片 48“0808 父亲节”,
 48图片 49“0909 ***身故回看”,
 49图片 50“0910 教师节”,
 50图片 51“0928 尼父诞辰”,
 51图片 52“1001*国庆节”,
 52图片 53“1006 老人节”,
 53图片 54“1024 联合国日”,
 54图片 55“1112 孙尼斯诞辰”,
 55图片 56“1220 新奥尔良回归”,
 56图片 57“1225 圣诞节”,
 57图片 58“1226 ***诞辰”)
 58图片 59
 59图片 60//阴历节日 *意味着放假期
 60图片 61var lFtv = new Array(
 61图片 62“0101*旧历新春”,
 62图片 63“0115 元宵节”,
 63图片 64“0505 端午节”,
 64图片 65“0707 清明节情人节”,
 65图片 66“0815 中秋节”,
 66图片 67“0909 重阳节”,
 67图片 68“1208 腊八节”,
 68图片 69“1224 小年”,
 69图片 70“0100*除夕”)
 70图片 71
 71图片 72//某月的第几个星期几
 72图片 73var wFtv = new Array(
 73图片 74“0520 母亲节”)
 74图片 75
 75图片 76图片 77/**//*****************************************************************************
 76图片 78                                      日期统计
 77图片 79*****************************************************************************/
 78图片 80
 79图片 81//====================================== 传回阴历 y年的总天数
 80图片 82图片 83function lYearDays(y) 图片 84{
 81图片 85   var i, sum = 348
 82图片 86   for(i=0x8000; i>0x8; i>>=1) sum += (lunarInfo[y-1900] & i)? 1: 0
 83图片 87   return(sum+leapDays(y))
 84图片 88}
 85图片 89
 86图片 90//====================================== 传回阴历 y年闰月的时局
 87图片 91图片 92function leapDays(y) 图片 93{
 88图片 94   if(leapMonth(y))  return((lunarInfo[y-1900] & 0x10000)? 30: 29)
 89图片 95   else return(0)
 90图片 96}
 91图片 97
 92图片 98//====================================== 传回公历 y年闰哪个月 1-12 , 没闰传回 0
 93图片 99图片 100function leapMonth(y) 图片 101{
 94图片 102   return(lunarInfo[y-1900] & 0xf)
 95图片 103}
 96图片 104
 97图片 105//====================================== 传回公历 y年m月的总天数
 98图片 106图片 107function monthDays(y,m) 图片 108{
 99图片 109   return( (lunarInfo[y-1900] & (0x10000>>m))? 30: 29 )
100图片 110}
101图片 111
102图片 112//====================================== 算出公历, 传入日期物件, 传回公历日期物件
103图片 113//                                       该物件属性有 .year .month .day .isLeap .yearCyl .dayCyl .monCyl
104图片 114图片 115function Lunar(objDate) 图片 116{
105图片 117
106图片 118   var i, leap=0, temp=0
107图片 119   var baseDate = new Date(1900,0,31)
108图片 120   var offset   = (objDate – baseDate)/86400000
109图片 121
110图片 122   this.dayCyl = offset + 40
111图片 123   this.monCyl = 14
112图片 124
113图片 125图片 126   for(i=1900; i<2050 && offset>0; i++) 图片 127{
114图片 128      temp = lYearDays(i)
115图片 129      offset -= temp
116图片 130      this.monCyl += 12
117图片 131   }
118图片 132
119图片 133图片 134   if(offset<0) 图片 135{
120图片 136      offset += temp;
121图片 137      i–;
122图片 138      this.monCyl -= 12
123图片 139   }
124图片 140
125图片 141   this.year = i
126图片 142   this.yearCyl = i-1864
127图片 143
128图片 144   leap = leapMonth(i) //闰哪个月
129图片 145   this.isLeap = false
130图片 146
131图片 147图片 148   for(i=1; i<13 && offset>0; i++) 图片 149{
132图片 150      //闰月
133图片 151      if(leap>0 && i==(leap+1) && this.isLeap==false)
134图片 152图片 153         图片 154{ –i; this.isLeap = true; temp = leapDays(this.year); }
135图片 155      else
136图片 156图片 157         图片 158{ temp = monthDays(this.year, i); }
137图片 159
138图片 160      //解除闰月
139图片 161      if(this.isLeap==true && i==(leap+1)) this.isLeap = false
140图片 162
141图片 163      offset -= temp
142图片 164      if(this.isLeap == false) this.monCyl ++
143图片 165   }
144图片 166
145图片 167   if(offset==0 && leap>0 && i==leap+1)
146图片 168      if(this.isLeap)
147图片 169图片 170         图片 171{ this.isLeap = false; }
148图片 172      else
149图片 173图片 174         图片 175{ this.isLeap = true; –i; –this.monCyl;}
150图片 176
151图片 177图片 178   if(offset<0)图片 179{ offset += temp; –i; –this.monCyl; }
152图片 180
153图片 181   this.month = i
154图片 182   this.day = offset + 1
155图片 183}
156图片 184
157图片 185//==============================传回国历 y年某m+六月的造化
158图片 186图片 187function solarDays(y,m) 图片 188{
159图片 189   if(m==1)
160图片 190      return(((y%4 == 0) && (y%100 != 0) || (y%400 == 0))? 29: 28)
161图片 191   else
162图片 192      return(solarMonth[m])
163图片 193}
164图片 194//============================== 传入 offset 传回干支, 0=丁亥
165图片 195图片 196function cyclical(num) 图片 197{
166图片 198   return(Gan[num%10]+Zhi[num%12])
167图片 199}
168图片 200
169图片 201//============================== 月历属性
170图片 202图片 203function calElement(sYear,sMonth,sDay,week,lYear,lMonth,lDay,isLeap,cYear,cMonth,cDay) 图片 204{
171图片 205
172图片 206      this.isToday    = false;
173图片 207      //国历
174图片 208      this.sYear      = sYear;
175图片 209      this.sMonth     = sMonth;
176图片 210      this.sDay       = sDay;
177图片 211      this.week       = week;
178图片 212      //农历
179图片 213      this.lYear      = lYear;
180图片 214      this.lMonth     = lMonth;
181图片 215      this.lDay       = lDay;
182图片 216      this.isLeap     = isLeap;
183图片 217      //干支
184图片 218      this.cYear      = cYear;
185图片 219      this.cMonth     = cMonth;
186图片 220      this.cDay       = cDay;
187图片 221
188图片 222      this.color      = ”;
189图片 223
190图片 224      this.lunarFestival = ”; //公历节日
191图片 225      this.solarFestival = ”; //国历节日
192图片 226      this.solarTerms    = ”; //节气
193图片 227
194图片 228}
195图片 229
196图片 230//===== 某年的第n个节气为几日(从0夏至起算)
197图片 231图片 232function sTerm(y,n) 图片 233{
198图片 234   var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000  ) + Date.UTC(1900,0,6,2,5) )
199图片 235   return(offDate.getUTCDate())
200图片 236}
201图片 237
202图片 238//============================== 传回月历物件 (y年,m+六月)
203图片 239图片 240function calendar(y,m) 图片 241{
204图片 242
205图片 243   var sDObj, lDObj, lY, lM, lD=1, lL, lX=0, tmp1, tmp2
206图片 244   var lDPOS = new Array(3)
207图片 245   var n = 0
208图片 246   var firstLM = 0
209图片 247
210图片 248   sDObj = new Date(y,m,1)            //当月1一日日子
211图片 249
212图片 250   this.length    = solarDays(y,m)    //国历当月天数
213图片 251   this.firstWeek = sDObj.getDay()    //国历当月1十二日星期几
214图片 252
215图片 253
216图片 254图片 255   for(var i=0;i<this.length;i++) 图片 256{
217图片 257
218图片 258图片 259      if(lD>lX) 图片 260{
219图片 261         sDObj = new Date(y,m,i+1)    //当月二十15日日期
220图片 262         lDObj = new Lunar(sDObj)     //农历
221图片 263         lY    = lDObj.year           //农历年
222图片 264         lM    = lDObj.month          //农历月
223图片 265         lD    = lDObj.day            //农历日
224图片 266         lL    = lDObj.isLeap         //公历是或不是闰月
225图片 267         lX    = lL? leapDays(lY): monthDays(lY,lM) //农历当月最後一天
226图片 268
227图片 269         if(n==0) firstLM = lM
228图片 270         lDPOS[n++] = i-lD+1
229图片 271      }
230图片 272
231图片 273      //sYear,sMonth,sDay,week,
232图片 274      //lYear,lMonth,lDay,isLeap,
233图片 275      //cYear,cMonth,cDay
234图片 276      this[i] = new calElement(y, m+1, i+1, nStr1[(i+this.firstWeek)%7],
235图片 277                               lY, lM, lD++, lL,
236图片 278                               cyclical(lDObj.yearCyl) ,cyclical(lDObj.monCyl), cyclical(lDObj.dayCyl++) )
237图片 279
238图片 280
239图片 281      if((i+this.firstWeek)%7==0)   this[i].color = ‘red’  //周三颜色
240图片 282      if((i+this.firstWeek)%14==13) this[i].color = ‘red’  //周休六日颜色
241图片 283   }
242图片 284
243图片 285   //节气
244图片 286   tmp1=sTerm(y,m*2  )-1
245图片 287   tmp2=sTerm(y,m*2+1)-1
246图片 288   this[tmp1].solarTerms = solarTerm[m*2]
247图片 289   this[tmp2].solarTerms = solarTerm[m*2+1]
248图片 290   if(m==3) this[tmp1].color = ‘red’ //夏至颜色
249图片 291
250图片 292   //国历节日
251图片 293   for(i in sFtv)
252图片 294图片 295      if(sFtv[i].match(/^(\d图片 296{2})(\d图片 297{2})([\s\*])(.+)$/))
253图片 298图片 299         if(Number(RegExp.$1)==(m+1)) 图片 300{
254图片 301            this[Number(RegExp.$2)-1].solarFestival += RegExp.$4 + ‘ ‘
255图片 302            if(RegExp.$3==’*’) this[Number(RegExp.$2)-1].color = ‘red’
256图片 303         }
257图片 304
258图片 305   //月周节日
259图片 306   for(i in wFtv)
260图片 307图片 308      if(wFtv[i].match(/^(\d图片 309{2})(\d)(\d)([\s\*])(.+)$/))
261图片 310图片 311         if(Number(RegExp.$1)==(m+1)) 图片 312{
262图片 313            tmp1=Number(RegExp.$2)
263图片 314            tmp2=Number(RegExp.$3)
264图片 315            this[((this.firstWeek>tmp2)?7:0) + 7*(tmp1-1) + tmp2 – this.firstWeek].solarFestival += RegExp.$5 + ‘ ‘
265图片 316         }
266图片 317
267图片 318   //公历节日
268图片 319   for(i in lFtv)
269图片 320图片 321      if(lFtv[i].match(/^(\d图片 322{2})(.图片 323{2})([\s\*])(.+)$/)) 图片 324{
270图片 325         tmp1=Number(RegExp.$1)-firstLM
271图片 326         if(tmp1==-11) tmp1=1
272图片 327图片 328         if(tmp1 >=0 && tmp1<n) 图片 329{
273图片 330            tmp2 = lDPOS[tmp1] + Number(RegExp.$2) -1
274图片 331图片 332            if( tmp2 >= 0 && tmp2<this.length) 图片 333{
275图片 334               this[tmp2].lunarFestival += RegExp.$4 + ‘ ‘
276图片 335               if(RegExp.$3==’*’) this[tmp2].color = ‘red’
277图片 336            }
278图片 337         }
279图片 338      }
280图片 339
281图片 340   //铁锈棕周六
282图片 341   if((this.firstWeek+12)%7==5)
283图片 342      this[12].solar费斯特ival += ‘卡其色礼拜六 ‘
284图片 343
285图片 344   //今日
286图片 345   if(y==tY && m==tM) this[tD-1].isToday = true;
287图片 346
288图片 347}
289图片 348
290图片 349//====================== 国语日期
291图片 350图片 351function cDay(d)图片 352{
292图片 353   var s;
293图片 354
294图片 355图片 356   switch (d) 图片 357{
295图片 358      case 10:
296图片 359         s = ‘初十’; break;
297图片 360      case 20:
298图片 361         s = ‘二十’; break;
299图片 362         break;
300图片 363      case 30:
301图片 364         s = ‘三十’; break;
302图片 365         break;
303图片 366      default :
304图片 367         s = nStr2[Math.floor(d/10)];
305图片 368         s += nStr1[d%10];
306图片 369   }
307图片 370   return(s);
308图片 371}
309图片 372
310图片 373///////////////////////////////////////////////////////////////////////////////
311图片 374
312图片 375var cld;
313图片 376
314图片 377图片 378function drawCld(SY,SM) 图片 379{
315图片 380   var i,sD,s,size;
316图片 381   cld = new calendar(SY,SM);
317图片 382
318图片 383   if(SY>1874 && SY<1909) yDisplay = ‘光绪’ + (((SY-1874)==1)?’元’:SY-1874)+’年’
319图片 384   if(SY>1908 && SY<1912) yDisplay = ‘宣统’ + (((SY-1908)==1)?’元’:SY-1908)+’年’
320图片 385   if(SY>1911 && SY<1950) yDisplay = ‘民国’ + (((SY-1911)==1)?’元’:SY-1911)+’年’
321图片 386   if(SY>1949) yDisplay = ‘ ‘ 
322图片 387   
323图片 388   
324图片 389
325图片 390   GZ.innerHTML = yDisplay +’ 农历’ + cyclical(SY-1900+36) + ‘年   【’+Animals[(SY-4)%12]+’】’;
326图片 391
327图片 392   YMBG.innerHTML = ” ” + SY + “<BR> ” + monthName[SM];
328图片 393
329图片 394
330图片 395图片 396   for(i=0;i<42;i++) 图片 397{
331图片 398
332图片 399      sObj=eval(‘SD’+ i);
333图片 400      lObj=eval(‘LD’+ i);
334图片 401
335图片 402      sObj.className = ”;
336图片 403
337图片 404      sD = i – cld.firstWeek;
338图片 405
339图片 406图片 407      if(sD>-1 && sD<cld.length) 图片 408{ //日期内
340图片 409         sObj.innerHTML = sD+1;
341图片 410
342图片 411         if(cld[sD].isToday) sObj.className = ‘todyaColor’; //前几日颜色
343图片 412
344图片 413         sObj.style.color = cld[sD].color; //国定沐日颜色
345图片 414
346图片 415         if(cld[sD].lDay==1) //突显阴历月
347图片 416            lObj.innerHTML = ‘<b>’+(cld[sD].isLeap?’闰’:”) + cld[sD].lMonth + ‘月’ + (monthDays(cld[sD].lYear,cld[sD].lMonth)==29?’小’:’大’)+'</b>’;
348图片 417         else //突显阴历日
349图片 418            lObj.innerHTML = cDay(cld[sD].lDay);
350图片 419
351图片 420         s=cld[sD].lunarFestival;
352图片 421图片 422         if(s.length>0) 图片 423{ //公历节日
353图片 424            if(s.length>6) s = s.substr(0, 4)+’…’;
354图片 425            s = s.fontcolor(‘red’);
355图片 426         }
356图片 427图片 428         else 图片 429{ //国历节日
357图片 430            s=cld[sD].solarFestival;
358图片 431图片 432            if(s.length>0) 图片 433{
359图片 434               size = (s.charCodeAt(0)>0 && s.charCodeAt(0)<128)?8:4;
360图片 435               if(s.length>size+2) s = s.substr(0, size)+’…’;
361图片 436               s = s.fontcolor(‘blue’);
362图片 437            }
363图片 438图片 439            else 图片 440{ //廿四节气
364图片 441               s=cld[sD].solarTerms;
365图片 442               if(s.length>0) s = s.fontcolor(‘limegreen’);
366图片 443            }
367图片 444         }
368图片 445         if(s.length>0) lObj.innerHTML = s;
369图片 446
370图片 447      }
371图片 448图片 449      else 图片 450{ //非日期
372图片 451         sObj.innerHTML = ”;
373图片 452         lObj.innerHTML = ”;
374图片 453      }
375图片 454   }
376图片 455}
377图片 456
378图片 457
379图片 458图片 459function changeCld() 图片 460{
380图片 461   var y,m;
381图片 462   y=CLD.SY.selectedIndex+1900;
382图片 463   m=CLD.SM.selectedIndex;
383图片 464   drawCld(y,m);
384图片 465}
385图片 466
386图片 467图片 468function pushBtm(K) 图片 469{
387图片 470图片 471   switch (K)图片 472{
388图片 473      case ‘YU’ :
389图片 474         if(CLD.SY.selectedIndex>0) CLD.SY.selectedIndex–;
390图片 475         break;
391图片 476      case ‘YD’ :
392图片 477         if(CLD.SY.selectedIndex<149) CLD.SY.selectedIndex++;
393图片 478         break;
394图片 479      case ‘MU’ :
395图片 480图片 481         if(CLD.SM.selectedIndex>0) 图片 482{
396图片 483            CLD.SM.selectedIndex–;
397图片 484         }
398图片 485图片 486         else 图片 487{
399图片 488            CLD.SM.selectedIndex=11;
400图片 489            if(CLD.SY.selectedIndex>0) CLD.SY.selectedIndex–;
401图片 490         }
402图片 491         break;
403图片 492      case ‘MD’ :
404图片 493图片 494         if(CLD.SM.selectedIndex<11) 图片 495{
405图片 496            CLD.SM.selectedIndex++;
406图片 497         }
407图片 498图片 499         else 图片 500{
408图片 501            CLD.SM.selectedIndex=0;
409图片 502            if(CLD.SY.selectedIndex<149) CLD.SY.selectedIndex++;
410图片 503         }
411图片 504         break;
412图片 505      default :
413图片 506         CLD.SY.selectedIndex=tY-1900;
414图片 507         CLD.SM.selectedIndex=tM;
415图片 508   }
416图片 509   changeCld();
417图片 510}
418图片 511
419图片 512
420图片 513
421图片 514var Today = new Date();
422图片 515var tY = Today.getFullYear();
423图片 516var tM = Today.getMonth();
424图片 517var tD = Today.getDate();
425图片 518//////////////////////////////////////////////////////////////////////////////
426图片 519
427图片 520var width = “130”;
428图片 521var offsetx = 2;
429图片 522var offsety = 16;
430图片 523
431图片 524var x = 135;
432图片 525var y = 260;
433图片 526var snow = 0;
434图片 527var sw = 0;
435图片 528var cnt = 0;
436图片 529
437图片 530var dStyle;
438图片 531//document.onmousemove = mEvn;
439图片 532
440图片 533//显示详细日期资料
441图片 534图片 535function mOvr(v) 图片 536{
442图片 537   var s,festival;
443图片 538   var sObj=eval(‘SD’+ v);
444图片 539   var d=sObj.innerHTML-1;
445图片 540
446图片 541      //sYear,sMonth,sDay,week,
447图片 542      //lYear,lMonth,lDay,isLeap,
448图片 543      //cYear,cMonth,cDay
449图片 544
450图片 545图片 546   if(sObj.innerHTML!=”) 图片 547{
451图片 548
452图片 549      //sObj.style.cursor = ‘s-resize’;   //s-resize
453图片 550
454图片 551      if(cld[d].solarTerms == ” && cld[d].solarFestival == ” && cld[d].lunarFestival == ”)
455图片 552         festival = ”;
456图片 553      else
457图片 554         festival = ‘<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR=”#CCFFCC”><TR><TD>’+
458图片 555         ‘<FONT COLOR=”#000000″ STYLE=”font-size:9pt;”>’+cld[d].solarTerms + ‘ ‘ + cld[d].solarFestival + ‘ ‘ + cld[d].lunarFestival+'</FONT></TD>’+
459图片 556         ‘</TR></TABLE>’;
460图片 557
461图片 558      s= ‘<TABLE WIDTH=”130″ BORDER=0 CELLPADDING=”2″ CELLSPACING=0 BGCOLOR=”#000066″><TR><TD>’ +
462图片 559         ‘<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD ALIGN=”right”><FONT COLOR=”#99CCFF” STYLE=”font-size:9pt;”>’+
463图片 560         cld[d].sYear+’ 年 ‘+cld[d].sMonth+’ 月 ‘+cld[d].sDay+’ 日<br>星期’+cld[d].week+'<br>’+
464图片 561         ‘<font color=”violet”>农历’+(cld[d].isLeap?’闰 ‘:’ ‘)+cld[d].lMonth+’ 月 ‘+cld[d].lDay+’ 日</font><br>’+
465图片 562         ‘<font color=”yellow”>’+cld[d].cYear+’年 ‘+cld[d].cMonth+’月 ‘+cld[d].cDay + ‘日</font>’+
466图片 563         ‘</FONT></TD></TR></TABLE>’+ festival +'</TD></TR></TABLE>’;
467图片 564
468图片 565
469图片 566      document.all[“detail”].innerHTML = s;
470图片 567
471图片 568图片 569       if (snow == 0) 图片 570{
472图片 571         dStyle.left = x+offsetx-(width/2);
473图片 572         dStyle.top = y+offsety;
474图片 573           dStyle.visibility = “visible”;
475图片 574           snow = 1;
476图片 575       }
477图片 576    }
478图片 577}
479图片 578
480图片 579//清除详细日期资料
481图片 580图片 581function mOut() 图片 582{  }
482图片 583
483图片 584//取得地点
484图片 585图片 586function mEvn() 图片 587{
485图片 588   x=event.x;
486图片 589   y=event.y;
487图片 590    if (document.body.scrollLeft)
488图片 591图片 592       图片 593{x=event.x+document.body.scrollLeft; y=event.y+document.body.scrollTop;}
489图片 594图片 595    if (snow)图片 596{
490图片 597      dStyle.left = x+offsetx-(width/2)
491图片 598      dStyle.top = y+offsety
492图片 599    }
493图片 600}
494图片 601
495图片 602///////////////////////////////////////////////////////////////////////////
496图片 603
497图片 604图片 605function changeTZ() 图片 606{
498图片 607   CITY.innerHTML = CLD.TZ.value.substr(6)
499图片 608   setCookie(“TZ”,CLD.TZ.selectedIndex)
500图片 609}
501图片 610
502图片 611图片 612function tick() 图片 613{
503图片 614   var today
504图片 615   today = new Date()
505图片 616   Clock.innerHTML = today.toLocaleString().replace(/(年|月)/g, “/”).replace(/日/, “”);
506图片 617   Clock.innerHTML = TimeAdd(today.toGMTString(), CLD.TZ.value)
507图片 618   window.setTimeout(“tick()”, 1000);
508图片 619}
509图片 620
510图片 621图片 622function setCookie(name, value) 图片 623{
511图片 624    var today = new Date()
512图片 625    var expires = new Date()
513图片 626    expires.setTime(today.getTime() + 1000*60*60*24*365)
514图片 627    document.cookie = name + “=” + escape(value)    + “; expires=” + expires.toGMTString()
515图片 628}
516图片 629
517图片 630图片 631function getCookie(Name) 图片 632{
518图片 633   var search = Name + “=”
519图片 634图片 635   if(document.cookie.length > 0) 图片 636{
520图片 637      offset = document.cookie.indexOf(search)
521图片 638图片 639      if(offset != -1) 图片 640{
522图片 641         offset += search.length
523图片 642         end = document.cookie.indexOf(“;”, offset)
524图片 643         if(end == -1) end = document.cookie.length
525图片 644         return unescape(document.cookie.substring(offset, end))
526图片 645      }
527图片 646      else return “”
528图片 647   }
529图片 648}
530图片 649
531图片 650/////////////////////////////////////////////////////////
532图片 651
533图片 652图片 653function initial() 图片 654{
534图片 655   dStyle = detail.style;
535图片 656   CLD.SY.selectedIndex=tY-1900;
536图片 657   CLD.SM.selectedIndex=tM;
537图片 658   drawCld(tY,tM);
538图片 659
539图片 660   CLD.TZ.selectedIndex=getCookie(“TZ”);
540图片 661   changeTZ();
541图片 662   tick();
542图片 663}
543图片 664
544图片 665
545图片 666
546图片 667//–>
547图片 668</SCRIPT>

      jQuery1.4上述就行了.

用途:

     
可以支持奇门遁甲,公历,农历,万年历,节沐日红字突显,记事,等功能,有些老外也开发了这一个日历插件,但是很懊丧,他们不懂中国的往事以及<易经>等,所以她们只把他们善于的农历和记载部分给开发出来了.那肯定不能满意中国的须要,所以作者就开发了一晃,发表出来方便大家.

说明:

     
演示动画中冒出的民国多少年,以及部分节日都不是中华新大陆的,因为那一个插件小编是为本人的铺面支付的,至于自个儿的营业所吗,那很肯定,是在黑龙江.

//假使要轉載本文請注明出處,免的出現版權紛爭,笔者不喜歡看到那種轉載了本人的文章卻不评释出處的人
Seven{See7di#Gmail.com}

**演示:
图片 669

**

图片 670

 

用法:

1.html調用頁面的代碼為:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
<html xmlns=”http://www.w3.org/1999/xhtml"&gt;
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″
/>
<title> new document </title>
<script type=’text/javascript’
src=”img/jquery-1.5.2.min.js”></script>
<script type=’text/javascript’
src=”img/plugin.js”></script>
<script type=’text/javascript’>
$(function(){
    option=new Array(true,false,true,true);//節日,干支,農曆,紅字
    $(“#rili”).PL_rili(option);
});
</script>
</head>

<body>
<div id=’rili’></div>
</body>
</html>

 

2.plugin.js的內容為:

(function($){

    $.fn.PL_rili=function(Option){
        var _id=jQuery(this).attr(‘id’);
        var Today=new Date();
        var tY=Today.getFullYear();
        var tM=Today.getMonth();
        var tD=Today.getDate();

        var lunarInfo=new Array(
          
 0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,
          
 0x0ada2,0x095b0,0x14977,0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,0x06566,0x0d4a0,0x0ea50,0x06e95,
          
 0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,0x06ca0,
          
 0x0b550,0x15355,0x04da0,0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,
          
 0x05b57,0x056a0,0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6,0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,
          
 0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,0x0c960,0x0d954,
          
 0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,
          
 0x0a930,0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,
          
 0x1d0b6,0x0d250,0x0d520,0x0dd45,0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0
        );

        var solarMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
        var Gan=new
Array(“甲”,”乙”,”丙”,”丁”,”戊”,”己”,”庚”,”辛”,”壬”,”癸”);
        var Zhi=new
Array(“子”,”丑”,”寅”,”卯”,”辰”,”巳”,”午”,”未”,”申”,”酉”,”戌”,”亥”);
        var solarTerm=new
Array(“小寒”,”大寒”,”立春”,”雨水”,”驚蟄”,”春分”,”清明”,”穀雨”,”立夏”,”小滿”,”芒種”,”夏至”,”小暑”,”大暑”,”立秋”,”處暑”,”白露”,”秋分”,”寒露”,”霜降”,”立冬”,”小雪”,”大雪”,”冬至”);
        var sTermInfo=new
Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758);
        var nStr1=new
Array(‘星期日’,’星期一’,’星期二’,’星期三’,’星期四’,’星期五’,’星期六’);
        var cn_mth=new
Array(“”,”一月”,”二月”,”三月”,”四月”,”五月”,”六月”,”七月”,”八月”,”九月”,”十月”,”十一月”,”十二月”);
        var cn_day=new
Array(“”,”初一”,”初二”,”初三”,”初四”,”初五”,”初六”,”初七”,”初八”,”初九”,”初十”,”十一”,”十二”,”十三”,”十四”,”十五”,”十六”,”十七”,”十八”,”十九”,”二十”,”廿一”,”廿二”,”廿三”,”廿四”,”廿五”,”廿六”,”廿七”,”廿八”,”廿九”,”三十”,”卅一”);

        //國曆節日 *意味着放沐日
        var sFtv=new Array(
            “0101*元旦”,”0111 司法節”,”0115 藥師節”,
            “0214 情人節”,”0215 戲劇節”,”0228*和平紀念日”,
            “0301 兵役節”,”0308 婦女節”,”0312 植樹節”,”0317
國醫節”,”0320 郵政節”,”0321 氣象節”,”0325 美術節”,”0326 廣播節”,”0329
青年節”,”0330 出版節”,
            “0401 愚人節”,”0404*兒童節”,”0405*清明節”,”0408 衛生節”,
            “0501 勞動節”,”0504 文藝節”,”0505 舞蹈節”,”0512 護士節”,
            “0603 禁煙節”,”0606 水利節”,”0609 鐵路節”,”0615 警察節”,
            “0701 漁民節”,”0711 航海節”,
            “0808 父親節”,”0814 空軍節”,
            “0901 記者節”,”0903 軍人節”,”0909 律師節”,”0913
法律日”,”0928 教師節”,
            “1006 老人節”,”1010*國慶日”,”1021 華僑節”,”1024
聯合國日”,”1025 光復節”,”1031 榮民節”,
            “1101 商人節”,”1111 工業節”,”1112 國父誕辰”,”1121 防空節”,
            “1205 海員節”,”1210 人權節”,”1212
憲兵節”,”1225*行憲紀念日”,”1227 建築師節”,”1228 電信節”,”1231 受信節”
        );

        //農曆節日
        var lFtv=new Array(
            “0100*除夕”,”0101*春節”,”0102*回娘家”,”0103*祭祖”,”0104
迎神”,”0105 開市”,”0109 天公生”,”0115 元宵節”,
            “0202 土地公生”,”0219 觀世音誕辰”,
            “0323 媽祖生日”,
            “0408 浴彿節”,
            “0505*端午節”,
            “0701 開鬼門”,”0707 七夕”,”0715 中元節”,
            “0800 關鬼門”,”0815*中秋節”,
            “0909 重陽節”,
            “1208 臘八節”,”1216 尾牙”,”1224 送神”
        );

        //某月的第幾個星期幾
        var wFtv=new Array(“0520 母親節”,”1144 感恩節”);

        //畫月曆
        Show(tY,tM,tD);
        function Show(_y,_m,_d){
            var i,sD;
            var cld=new core(_y,_m);
            Ganzhi((_y-1900)*12 + _m +14);
            css='<style type=”text/css”>’;
          
 css+=’#PL_rili_tit{width:100%;font-family:Verdana,arial;font-size:15px;font-weight:bold;color:#444;position:relative;letter-spacing:2px;}’;
            css+=’#PL_rili_tit
div{margin-bottom:4px;color:#486297;}’;
            css+=’#PL_rili_tit .btn{width:auto;background:none repeat
scroll 0 0 #637BAD;border-color:#637BAD #28447E #637BAD
#FFF;border-style:solid;border-width:0 0 0
1px;color:#FFF;font-size:13px;font-weight:bold;height:23px;padding:3px
10px;cursor:pointer;}’;
          
 css+=’#PL_rili_box{width:100%;font-family:Verdana,arial,Pmingliu;font-size:12px;color:#444;position:relative;border:1px
solid #486297;}’;
            css+=’#PL_rili_box td{text-align:center;}’;
            css+=’#PL_rili_box #r1 td{border-right:1px solid
#D6D6D6;background-color:#637BAD;color:#EEE;font-weight:bold;padding:4px
0;text-align:center;vertical-align:top;}’;
            css+=’#PL_rili_box #r2{border-width:0 1px 1px
1px;border-color:#EEE #AAA #EEE
#AAA;border-style:solid;height:55px;vertical-align:top;color:#444;}’;
            css+=’#PL_rili_box #r2 td{border-right:1px solid
#FFF;border-bottom:1px solid #FFF;line-height:170%;}’;
            css+=’#PL_rili_box #r2
div{background-color:#EEE;overflow:hidden;position:relative;width:100%;padding:2px
0;}’;
            css+=’#PL_rili_box #r2
.a{float:right;padding-right:3px;font-size:12px;font-weight:normal;}’;
            css+=’#PL_rili_box #r2 .b{float:left;}’;
            css+=’#PL_rili_box #r2
.c{color:#333;float:left;height:50px;text-align:left;text-indent:4px;width:100%;font-size:12px;font-weight:normal;}’;
            css+='</style>’;

            css+='<div id=”PL_rili_tit”>’;
            css+='<div style=”float:right;”><button class=”btn”
id=”del”>◄</button><button class=”btn”
id=”today”>本月</button><button class=”btn”
id=”add”>►</button></div>’;
            css+='<div>’+_y+’年’+(_m+1)+’月’+_d+’日 ‘;
          
 if(_y>1911){css+=’民國’+(((_y-1911)==1)?’元’:_y-1911)+’年’+(_m+1)+’月
‘;}
            css+=Ganzhi(_y-1900+36)+’年
‘+Ganzhi((_y-1900)*12+_m+14)+’月’;
            css+='</div><input type=”hidden” id=”y_”
value=”‘+_y+'”><input type=”hidden” id=”m_”
value=”‘+(_m+1)+'”></div>’;

            //星期
            css+='<table id=”PL_rili_box” border=”0″
cellspacing=”0″ cellpadding=”0″>’;
            css+='<tr id=”r1″>’;
            for(i=0;i<7;i++){css+='<td
style=”width:14.2857%;”>’+nStr1[i]+'</td>’;}
            css+='</tr>’;

            //42天
            css+='<tr id=”r2″>’;
            for(i=0;i<42;i++){
                sD=i-cld.firstWeek;
                if(sD>=0 && sD < cld.length){
                    css+='<td’;
                    //顯示明日的顏色
                    css+=(cld[sD].bColor)?’
style=”background-color:’+cld[sD].bColor+’;”>’:’>’;

                    css+='<div’;
                    if(cld[sD].bColor || cld[sD].cColor){
                        //顯示節假期紅色或前些天的顏色
                        css+=(cld[sD].cColor)?’
style=”background-color:’+cld[sD].cColor+’;”‘:’
style=”background-color:’+cld[sD].bColor+’;”‘;
                    }
                    css+=’>’;
                    //農曆
                    css+='<span class=”a”>’;
                    css+=(Option[0])?cld[sD].JieRi+’ ‘:”;          
 //節日
                    css+=(Option[1])?’ ‘+cld[sD].Ganzhi:”;      
     //干支
                    css+='</span>’;

                    //公曆
                    css+='<span class=”b”‘;
                    css+=(Option[3])?’
style=”color:’+cld[sD].aColor+'”‘:”;
                    css+=’><b>’+(sD+1)+’日</b>’;
                    if(Option[2]){                                  
 //農曆
                        if(cld[sD].lDay==1){
                            if(cld[sD].RnYue){css+=’閏’;}
                            css+=cn_mth[cld[sD].lMonth];          
 //顯示農曆月份
                        }else{
                            if(cld[sD].JieQi){
                                css+=cld[sD].JieQi;                  
 //顯示農曆節氣
                            }else{
                                css+=cn_day[cld[sD].lDay];      
     //顯示農曆日期
                            }
                        }
                    }
                    
                    
                    css+='</span></div>’;
                    //房價
                    css+='<span id=”‘+_y+’-‘+(_m+1)+’-‘+(sD+1)+'”
class=”c”>ddd</span>’;
                    css+='</td>’;
                }else{
                    css+='<td> </td>’;
                }

                if((i%7==6) && i<41){
                  
 if((sD+2)>cld.length){break;}//css+='</tr><tr
id=”r2″>’;
                }
                if((i+1)%7==0 && i<41){css+='</tr><tr
id=”r2″ name=”‘+i+'”>’;}
            }
            css+='</tr></table>’;
            $(“#”+_id+””).append(css);

            //調整佈局
            $(“#PL_rili_box #r1
td:last-child”).css(“border-right”,”none”);
            $(“#PL_rili_box #r2
td:last-child”).css(“border-right”,”none”);

            //手工修改月份
            $(“#PL_rili_tit #del”).click(function(){Press(“-“);});
            $(“#PL_rili_tit #add”).click(function(){Press(“+”);});
            $(“#PL_rili_tit
#today”).click(function(){Press(“=”);});

            //修改
            $(“#PL_rili_box #r2 .c”).click(function(){
                alert($(this).text());
            })
        }
        
        //手工修改月份
        function Press(_t){
            try{
                hiddenY=parseInt($(“#PL_rili_tit #y_”).val());
                hiddenM=parseInt($(“#PL_rili_tit #m_”).val());
            }catch(e){
                hiddenY=tY;hiddenM=tM;
            }
            hiddenM–;
            switch(_t.toLowerCase()){
            case “-“:
              
 if(hiddenM>0){hiddenM–;}else{hiddenM=11;if(hiddenY>0){hiddenY–;}}
                break;
            case “+”:
              
 if(hiddenM<11){hiddenM++;}else{hiddenM=0;hiddenY++;}
                break;
            case “=”:
                hiddenY=tY;hiddenM=tM;
                break;
            }
            $(“#”+_id+””).empty();
            Show(hiddenY,hiddenM,tD);
        }

 

**源代码太长,一篇小说发布不完,剩余的代码不打算公诸于世了

因为只见有人来此偷代码,却不见任何人回应,Seven很哀伤,后果很严重.**