您的位置:首页 > Web前端 > JQuery

jQuery插件-支持天干地支阴历阳历万年历节假日红字显示记事等功能的日历插件(1)

2014-08-21 16:43 573 查看
要求:
jQuery1.4以上就行了.
用途:
可以支持天干地支,阴历,阳历,万年历,节假日红字显示,记事,等功能,有些老外也开发了这个日历插件,可是很不幸,他们不懂中国的老黄历以及<易经>等,所以他们只把他们擅长的阳历和记事部分给开发出来了.这显然无法满足中国的需求,所以我就开发了一下,公布出来方便大家.
说明:
演示动画中出现的民国多少年,以及一些节日都不是中国大陆的,因为这个插件我是为我的公司开发的,至于我的公司吗,这很显然,是在台湾.
//如果要轉載本文請注明出處,免的出現版權紛爭,我不喜歡看到那種轉載了我的作品卻不注明出處的人 Seven{See7di#Gmail.com}
演示:








用法:
1.html調用頁面的代碼為:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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很伤心,后果很严重.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐