see7di

要求:

      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>&nbsp;</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很伤心,后果很严重.

 

分类:

技术点:

相关文章:

  • 2021-12-05
  • 2022-12-23
  • 2022-03-05
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-01
相关资源
相似解决方案