• 万年历 加 日程安排


    <!doctype html public "-//w3c//dtd html 4.01 tRANSITIONAL//en" "HTTP://WWW.W3.ORG/tr/HTML4/LOOSE.DTD">
    <html>
    <head>
        <title>nEW dOCUMENT </title>
        <meta name="gENERATOR" content="eDITpLUS">
        <meta name="aUTHOR" content="">
        <meta name="kEYWORDS" content="">
        <meta name="dESCRIPTION" content="">
        <style>
            body {
                margin: 0px;
                padding: 0px;
                font-family: Arial;
            }
    
            .aorange {
                font-size: 20px;
                color: #ff5f07;
                font-family: "黑体",serif;
                font-weight: bold;
            }
    
            .agreen {
                font-size: 20px;
                color: #55e8df;
                font-weight: bold;
            }
    
            .one {
                font-family: "黑体",serif;
                font-size: 20px;
                color: #000;
                font-weight: normal;
                width: 70px;
                height: 50px;
                cursor: pointer;
            }
    
            .spc {
                color: #ff5f07;
            }
    
            div, select, p {
                font-size: 12px;
                color: #000;
            }
    
                div#festival {
                    color: #d8f6f8;
                    width: 130px;
                    padding: 2px;
                    margin: 0;
                    background-color: #0978a6;
                }
    
                div#datedetail {
                    width: 130px;
                    border: 0;
                    padding: 2px;
                    margin: 0;
                    background-color: #e8f5f9;
                    text-align: right;
                }
    
                    div#datedetail span {
                        color: #23460f;
                    }
    
                div#detail {
                    position: absolute;
                    visibility: hidden;
                    margin: 0;
                    border: 1px solid #a6a8ab;
                }
    
                div#date {
                    width: 98%;
                    font-size: 16px;
                    padding: 5px;
                    border: 1px solid #a6a8ab;
                    background-color: #e6f0fa;
                }
    
                div#calendar {
                    float: left;
                    text-align: center;
                    width: 500px;
                    border: 1px solid #a6a8ab;
                    border-top: 0;
                    height: auto;
                }
    
            #calendarhead {
                color: #fafbfb;
                border: 0;
                padding: 0;
                margin: 0;
                background-color: #0978a6;
            }
    
                #calendarhead tr td {
                    width: 70px;
                    font-weight: bold;
                    font-family: "黑体",serif;
                    font-size: 20px;
                    padding: 1px;
                }
    
            div#panel {
                margin: 0;
                padding: 10px;
            }
    
                div#panel div {
                    padding: 2px;
                    margin-top: 20px;
                    background: #e8f5f9;
                    border: 1px solid #a6a8ab;
                    font-size: 9pt;
                    cursor: pointer;
                }
    
            #week {
                background-color: #fcfcfc;
                border: 0;
                padding: 0;
                margin: 0;
            }
    
                #week tr td {
                    padding: 1px;
                    margin: 0;
                    width: 70px;
                    border-bottom: 1px solid #efefef;
                    border-left: 1px solid #efefef;
                }
    
            .tr2 td {
                background-color: #e8f5f9;
            }
    
            #valid {
                float: left;
                margin: 0;
                padding: 30px;
            }
    
                #valid div {
                    padding: 2px;
                    margin-top: 20px;
                }
    
                #valid a img {
                    border: 0;
                }
    
            #ganler {
                margin: 0px auto;
            }
        </style>
        <script type="text/javascript">
            var debug = 2; // -1: disable; 0: all; N: show level N debug msg.
    
            //农历数据信息
            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 Animals = 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 nStr2 = new Array('', '', '廿', '', ' ');
            //英语月份简写
            var monthName = new Array("JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC");
    
            //国历节日 *表示节假日
            var sFtv = new Array(
                    "0101*元旦",
                    "0214 情人节",
                    "0308 妇女节",
                    "0312 植树节",
                    "0315 消费者权益日",
                    "0321 世界森林日、世界儿歌日",
                    "0322 世界水日",
                    "0323 世界气象日",
                    "0324 世界防治结核病日",
    
                    "0401 愚人节",
                    "0407 世界卫生日",
                    "0422 世界地球日",
    
                    "0501*劳动节",
                    "0504 青年节",
                    "0505 碘缺乏病防治日",
                    "0508 世界红十字日",
                    "0512 国际护士节",
                    "0515 国际家庭日",
                    "0517 世界电信日",
                    "0518 国际博物馆日",
                    "0520 全国学生营养日",
                    "0523 国际牛奶日",
                    "0531 世界无烟日",
    
                    "0601 儿童节",
                    "0605 世界环境日",
                    "0606 全国爱眼日",
                    "0616 防治荒漠化和干旱日",
                    "0623 国际奥林匹克日",
                    "0625 全国土地日",
                    "0626 国际反毒品日",
    
                    "0701 建党节 香港回归纪念 国际建筑日",
                    "0707 中国人民抗日战争纪念日",
                    "0711 世界人口日",
    
                    "0801 建军节",
                    "0808 父亲节",
    
                    "0908 国际扫盲日",
                    "0909 老毛逝世纪念",
                    "0910 教师节",
                    "0912 嘻嘻日",
                    "0916 国际臭氧层保护日",
                    "0920 国际爱牙日",
                    "0927 世界旅游日",
                    "0928 孔子诞辰",
    
                    "1001*国庆节 国际音乐日",
                    "1004 世界动物日",
                    "1006 老人节",
                    "1008 全国高血压日 世界视觉日",
                    "1009 世界邮政日",
                    "1015 国际盲人节",
                    "1016 世界粮食日",
                    "1017 世界消除贫困日",
                    "1024 联合国日",
    
                    "1108 中国记者日",
                    "1109 消防宣传日",
                    "1112 孙中山诞辰纪念",
                    "1114 世界糖尿病日",
                    "1117 国际大学生节",
    
                    "1201 世界艾滋病日",
                    "1203 世界残疾人日",
                    "1209 世界足球日",
                    "1220 澳门回归纪念",
                    "1225 圣诞节",
                    "1226 老毛诞辰纪念",
                    "1229 国际生物多样性日"
                    );
    
            //农历节日 *表示节假日
            var lFtv = new Array(
                    "0101*春节",
                    "0115 元宵节",
                    "0505 端午节",
                    "0707 七夕情人节",
                    "0715 中元节",
                    "0815 中秋节",
                    "0909 重阳节",
                    "1208 腊八节",
                    "1223 小年",
                    "0100*除夕"
                    );
    
            //按周计算 月周日
            var wFtv = new Array(
                    "0520 国际母亲节",
                    "0530 全国助残日",
                    "0630 国际父亲节",
                    "0932 国际和平日",
                    "0940 国际聋人节",
                    "1013 国际减轻自然灾害日",
                    "1011 国际住房日"
                    );
    
            function log(level, msg) {
                if (debug == 0 || debug == level)
                    if (window.console) {
                        window.console.log("[DEBUG]" + msg);
                    }
            }
    
            function lYearDays(y) {
                var i, sum = 348;
                for (i = 0x8000; i > 0x8; i >>= 1) sum += (lunarInfo[y - 1900] & i) ? 1 : 0;
                return (sum + leapDays(y));
            }
    
            function leapDays(y) {
                if (leapMonth(y)) return ((lunarInfo[y - 1900] & 0x10000) ? 30 : 29);
                else return (0);
            }
    
            function leapMonth(y) {
                return (lunarInfo[y - 1900] & 0xf);
            }
    
            function monthDays(y, m) {
                return ((lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29);
            }
    
            function Lunar(objDate) {
                var m = ""; // msg for log
                var i, leap = 0, temp = 0;
                var baseDate = new Date(1900, 0, 31);
                // changed by hmisty 2005/07/23
                //   var offset   = (objDate - baseDate)/86400000;
                var offset = Math.floor((objDate.getTime() + 2206425600000) / 86400000);
                m += "objDate=" + objDate.getTime() + ", new Date(1900,0,31)=" + baseDate.getTime();
                m += "offset=" + offset;
    
                this.dayCyl = offset + 40;
                this.monCyl = 14;
    
                for (i = 1900; i < 2050 && offset > 0; i++) {
                    temp = lYearDays(i);
                    offset -= temp;
                    this.monCyl += 12;
                }
    
                if (offset < 0) {
                    offset += temp;
                    i--;
                    this.monCyl -= 12;
                }
    
                this.year = i;
                this.yearCyl = i - 1864;
    
                leap = leapMonth(i);
                this.isLeap = false;
    
                for (i = 1; i < 13 && offset > 0; i++) {
                    if (leap > 0 && i == (leap + 1) && this.isLeap == false)
                    { --i; this.isLeap = true; temp = leapDays(this.year); }
                    else
                    { temp = monthDays(this.year, i); }
    
                    if (this.isLeap == true && i == (leap + 1)) this.isLeap = false;
    
                    offset -= temp;
                    if (this.isLeap == false) this.monCyl++;
                }
    
                if (offset == 0 && leap > 0 && i == leap + 1)
                    if (this.isLeap)
                    { this.isLeap = false; }
                    else
                    { this.isLeap = true; --i; --this.monCyl; }
    
                if (offset < 0) { offset += temp; --i; --this.monCyl; }
    
                this.month = i;
                this.day = offset + 1;
    
                m += "\noffset=" + offset + ", year=" + this.year + ", yearCyl=" + this.yearCyl + ", month=" + this.month + ",\n monthCyl=" + this.monthCyl + ", day=" + this.day + ", dayCyl=" + this.dayCyl;
                log(2, m);
            }
    
            function solarDays(y, m) {
                if (m == 1)
                    return (((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0)) ? 29 : 28);
                else
                    return (solarMonth[m]);
            }
    
            function cyclical(num) {
                return (Gan[num % 10] + Zhi[num % 12]);
            }
    
            function calElement(sYear, sMonth, sDay, week, lYear, lMonth, lDay, isLeap, cYear, cMonth, cDay) {
    
                this.isToday = false;
                this.sYear = sYear;
                this.sMonth = sMonth;
                this.sDay = sDay;
                this.week = week;
                this.lYear = lYear;
                this.lMonth = lMonth;
                this.lDay = lDay;
                this.isLeap = isLeap;
                this.cYear = cYear;
                this.cMonth = cMonth;
                this.cDay = cDay;
    
                this.color = '';
    
                this.lunarFestival = '';
                this.solarFestival = '';
                this.solarTerms = '';
    
            }
    
            function sTerm(y, n) {
                log(1, "y=" + y + " n=" + n + " sTermInfo[n]=" + sTermInfo[n] + " Date.UTC(1900,0,6,2,5)=" + Date.UTC(1900, 0, 6, 2, 5) + " Date.UTC(1970,0,1,0,0)=" + Date.UTC(1970, 0, 1, 0, 0));
                // changed by hmisty 2005/07/23
                //   var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000  ) + Date.UTC(1900,0,6,2,5) );
                var offDate = new Date((31556925974.7 * (y - 1900) + sTermInfo[n] * 60000) - 2208549300000);
                // Negative epoch (time_t) values are not officially supported by the
                // POSIX standards.  On some systems, they are known not to work.
                // -- perldoc Time::Local
    
                return (offDate.getUTCDate());
            }
    
            function calendar(y, m) {
                log(1, "i am in calendar() now");
                var sDObj, lDObj, lY, lM, lD = 1, lL, lX = 0, tmp1, tmp2;
                var lDPOS = new Array(3);
                var n = 0;
                var firstLM = 0;
    
                sDObj = new Date(y, m, 1);
    
                this.length = solarDays(y, m);
                this.firstWeek = sDObj.getDay();
    
                log(1, "this.length: " + this.length);
                log(1, "begin loop for(var i=0;i<this.length;i++)");
                for (var i = 0; i < this.length; i++) {
    
                    if (lD > lX) {
                        sDObj = new Date(y, m, i + 1);
                        lDObj = new Lunar(sDObj);
                        lY = lDObj.year;
                        lM = lDObj.month;
                        lD = lDObj.day;
                        lL = lDObj.isLeap;
                        lX = lL ? leapDays(lY) : monthDays(lY, lM);
    
                        if (n == 0) firstLM = lM;
                        lDPOS[n++] = i - lD + 1;
                    }
    
                    //log(1,  "lDObj.dayCyl: "+lDObj.dayCyl);
                    this[i] = new calElement(y, m + 1, i + 1, nStr1[(i + this.firstWeek) % 7],
                                           lY, lM, lD++, lL,
                                           cyclical(lDObj.yearCyl), cyclical(lDObj.monCyl), cyclical(lDObj.dayCyl++));
    
    
                    if ((i + this.firstWeek) % 7 == 0) this[i].color = '#ff5f07';
                    if ((i + this.firstWeek) % 14 == 13) this[i].color = '#ff5f07';
                }
                log(1, "end loop for(var i=0;i<this.length;i++)");
    
                tmp1 = sTerm(y, m * 2) - 1;
                tmp2 = sTerm(y, m * 2 + 1) - 1;
                log(1, "m: " + m + " tmp1: " + tmp1 + " " + solarTerm[m * 2] + " tmp2: " + tmp2 + " " + solarTerm[m * 2 + 1]);
                this[tmp1].solarTerms = solarTerm[m * 2];
                this[tmp2].solarTerms = solarTerm[m * 2 + 1];
                if (m == 3) this[tmp1].color = '#ff5f07';
    
                log(1, "begin loop for(i in sFtv)");
                for (i in sFtv)
                    if (sFtv[i].match(/^(\d{2})(\d{2})([\s\*])(.+)$/))
                        if (Number(RegExp.$1) == (m + 1)) {
                            this[Number(RegExp.$2) - 1].solarFestival += RegExp.$4 + ' ';
                            if (RegExp.$3 == '*') this[Number(RegExp.$2) - 1].color = '#ff5f07';
                        }
    
                log(1, "begin loop for(i in wFtv)");
                for (i in wFtv)
                    if (wFtv[i].match(/^(\d{2})(\d)(\d)([\s\*])(.+)$/))
                        if (Number(RegExp.$1) == (m + 1)) {
                            tmp1 = Number(RegExp.$2);
                            tmp2 = Number(RegExp.$3);
                            this[((this.firstWeek > tmp2) ? 7 : 0) + 7 * (tmp1 - 1) + tmp2 - this.firstWeek].solarFestival += RegExp.$5 + ' ';
                        }
    
                log(1, "begin loop for(i in lFtv)");
                for (i in lFtv)
                    if (lFtv[i].match(/^(\d{2})(.{2})([\s\*])(.+)$/)) {
                        log(1, lFtv[i]);
                        tmp1 = Number(RegExp.$1) - firstLM;
                        if (tmp1 == -11) tmp1 = 1;
                        if (tmp1 >= 0 && tmp1 < n) {
                            tmp2 = lDPOS[tmp1] + Number(RegExp.$2) - 1;
                            if (tmp2 >= 0 && tmp2 < this.length) {
                                log(1, "tmp2 >= 0 && tmp2(" + tmp2 + ")<this.length(" + this.length + ")");
                                log(1, RegExp.$4);
                                log(1, this[tmp2].lunarFestival);
                                this[tmp2].lunarFestival += RegExp.$4 + ' ';
                                log(1, RegExp.$3);
                                if (RegExp.$3 == '*') this[tmp2].color = '#ff5f07';
                            }
                        }
                    }
    
                log(1, "begin 黑色星期五");
                if ((this.firstWeek + 12) % 7 == 5)
                    this[12].solarFestival += '黑色星期五 ';
    
                if (y == tY && m == tM) {
                    this[tD - 1].isToday = true;
                }
            }
    
            function cDay(d) {
                var s;
                switch (d) {
                    case 10:
                        s = '初十';
                        break;
                    case 20:
                        s = '二十';
                        break;
                    case 30:
                        s = '三十';
                        break;
                    default:
                        s = nStr2[Math.floor(d / 10)];
                        s += nStr1[d % 10];
                }
                return (s);
            }
    
            var cld;
    
            function drawCld(SY, SM) {
                log(1, "i am in drawCld() now");
                var i, sD, s, size;
                log(1, "begin to create calendar cld");
                cld = new calendar(SY, SM);
                log(1, "calendar cld creation finished");
                /*
                   if(SY>1874 && SY<1909) yDisplay = '光绪' + (((SY-1874)==1)?'元':SY-1874)
                   if(SY>1908 && SY<1912) yDisplay = '宣统' + (((SY-1908)==1)?'元':SY-1908)
                   if(SY>1911 && SY<1950) yDisplay = '民国' + (((SY-1911)==1)?'元':SY-1911)
                   if(SY>1949) yDisplay = '共和国' + (((SY-1949)==1)?'元':SY-1949)
                 */
                var curYear, curMonth;
                curYear = SY;
                curMonth = SM;
    
                document.getElementById("gz").innerHTML = '&nbsp;&nbsp;农历'
                    + cyclical(SY - 1900 + 36) + '年 &nbsp;&nbsp;【' + Animals[(SY - 4) % 12] + '';
                log(1, "innerHTML of gz is " + document.getElementById("gz").innerHTML);
                //YMBG.innerHTML = "&nbsp;" + SY + "<BR>&nbsp;" + monthName[SM];
    
                for (i = 0; i < 42; i++) {
    
                    sObj = document.getElementById('sd' + i);
                    lObj = document.getElementById('ld' + i);
    
                    sObj.style.background = '';
                    lObj.style.background = '';
    
                    sD = i - cld.firstWeek;
                    if (sD > -1 && sD < cld.length) {
    
                        //在这里根据用户的选择可以拼接出一个当前选择的日期字符串 你可以在这里判断对比并且添加内容
                        // alert(SY + "-" + (SM+1) + "-" + (sD + 1)); 
                        var TheNewContent = SY + "-" + (SM + 1) + "-" + (sD + 1);
                        for (var v = 0; v < Tlist.length; v++) { 
                            if (TheNewContent == Tlist[v]) {
                                sObj.innerHTML = sD + 1 + "<br/><span style='color:red;font-size:12px;'>日程</span>";
                                break;
                            }else
                                sObj.innerHTML = sD + 1;
                        }  
                        
    
                        if (cld[sD].isToday) {
                            //设置今天的背景色
                            sObj.style.background = '#005eac'; 
                            //lObj.style.background = 'red';
                        }
    
                        sObj.style.color = cld[sD].color;
                        if (cld[sD].lDay == 1)
                            lObj.innerHTML = '<b>' + (cld[sD].isLeap ? '' : '')
                                + cld[sD].lMonth + ''
                                + (monthDays(cld[sD].lYear, cld[sD].lMonth) == 29 ? '' : '') + '</b>';
                        else
                            lObj.innerHTML = cDay(cld[sD].lDay);
                        s = cld[sD].lunarFestival;
                        if (s.length > 0) {
                            //农历节日名称大于5个字截去
                            //if(s.length>5) s = s.substr(0, 3)+'…';
                            if (s.length > 7) s = s.substr(0, 5) + '';
                            s = s.fontcolor('#ff5f07');
                        }
                        else {
                            s = cld[sD].solarFestival;
                            if (s.length > 0) {
                                //阳历节日名称截去
                                //size = (s.charCodeAt(0)>0 && s.charCodeAt(0)<128)?8:4;            
                                size = (s.charCodeAt(0) > 0 && s.charCodeAt(0) < 128) ? 9 : 5;
                                if (s.length > size + 1) s = s.substr(0, size - 1) + '';
                                s = s.fontcolor('#0168ea');
                            }
                            else {
                                s = cld[sD].solarTerms;
                                if (s.length > 0) s = s.fontcolor('#44d7cf');
                            }
                        }
                        if (s.length > 0) lObj.innerHTML = s;
    
                    }
                    else {
                        sObj.innerHTML = ' ';
                        lObj.innerHTML = ' ';
                    }
                }
                //alert(document.getElementById("clock").innerHTML);
            }
    
    
            function changeCld() {
                var y, m;
                y = document.getElementById("sy").selectedIndex + 1900;
                if (y > 2050) {
                    alert("对不起 大于2050年的万年历无法产生 请重新选择");
                    var nows = new Date();
                    document.getElementById("sy").selectedIndex = nows.getFullYear() - 1900;
                    document.getElementById("sm").selectedIndex = nows.getMonth();
                    drawCld(nows.getFullYear(), nows.getMonth());
                    return;
                }
                m = document.getElementById("sm").selectedIndex;
                drawCld(y, m);
            }
    
            function pushBtm(K) {
                switch (K) {
                    case 'YU':
                        if (document.getElementById("sy").selectedIndex > 0)
                            document.getElementById("sy").selectedIndex--;
                        break;
                    case 'YD':
                        if (document.getElementById("sy").selectedIndex < 149)
                            document.getElementById("sy").selectedIndex++;
                        break;
                    case 'MU':
                        if (document.getElementById("sm").selectedIndex > 0) {
                            document.getElementById("sm").selectedIndex--;
                        }
                        else {
                            document.getElementById("sm").selectedIndex = 11;
                            if (document.getElementById("sy").selectedIndex > 0)
                                document.getElementById("sy").selectedIndex--;
                        }
                        break;
                    case 'MD':
                        if (document.getElementById("sm").selectedIndex < 11) {
                            document.getElementById("sm").selectedIndex++;
                        }
                        else {
                            document.getElementById("sm").selectedIndex = 0;
                            if (document.getElementById("sy").selectedIndex < 149)
                                document.getElementById("sy").selectedIndex++;
                        }
                        break;
                    default:
                        document.getElementById("sy").selectedIndex = tY - 1900;
                        document.getElementById("sm").selectedIndex = tM;
                }
                changeCld();
            }
    
            var Today = new Date();
            var tY = Today.getFullYear();
            var tM = Today.getMonth();
            var tD = Today.getDate();
    
            var width = "130"; //detail层宽度
            var offsetx = 2;
            var offsety = 16;
    
            var x = 0;
            var y = 0;
            var show = 0;
            var sw = 0;
            var cnt = 0;
    
            var dStyle;
            document.onmousemove = mEvn;
    
            //用detail层显示详细信息
            function mOvr(v) {
                var festival = document.getElementById("festival");
                var datedetail = document.getElementById("datedetail");
    
                var sObj = document.getElementById('sd' + v);
                //alert(v);
                var d = sObj.innerHTML - 1;
    
                if (sObj.innerHTML != '') {
                    sObj.style.cursor = 'hand';
                    if (cld[d].solarTerms == ''
                            && cld[d].solarFestival == ''
                            && cld[d].lunarFestival == '') {
                        festival.innerHTML = "";
                        festival.style.display = "none";
                    }
                    else {
    
                        festival.innerHTML = cld[d].solarTerms + ' ' + cld[d].solarFestival + ' ' + cld[d].lunarFestival;
    
                        festival.style.display = "block";
                    }
                    datedetail.innerHTML = cld[d].sYear + '' + cld[d].sMonth
                    + '' + cld[d].sDay + ' 日<br />星期' + cld[d].week + '<br />'
                    + '<span>农历' + (cld[d].isLeap ? '' : ' ')
                    + cld[d].lMonth + '' + cld[d].lDay + ' 日<br />'
                    + cld[d].cYear + '' + cld[d].cMonth
                    + '' + cld[d].cDay + '日</span>';
    
                    if (show == 0) {
                        dStyle.left = (x + offsetx - (width / 2)) + "px";
                        dStyle.top = (y + offsety) + "px";
                        dStyle.visibility = "visible";
                        show = 1;
                    }
                    sObj.onclick = function () {
                        alert(cld[d].sYear + '-' + cld[d].sMonth + '-' + cld[d].sDay + '');
                    }
                }
            }
    
            function mOut() {
                if (cnt >= 1) { sw = 0 }
                if (sw == 0) { show = 0; dStyle.visibility = "hidden"; }
                else cnt++;
            }
    
            //获取鼠标坐标
            function mEvn(e) {
                if (!show) return;
                if (window.event) {
                    x = event.x;
                    y = event.y;
                    if (document.body.scrollLeft) {
                        x += document.body.scrollLeft;
                        y += document.body.scrollTop;
                    }
                    // changed by hmisty 2005/07/23
                    dStyle.left = (x + offsetx - (width / 2)) + "px";
                    dStyle.top = (y + offsety) + "px";
                }
                else {
                    dStyle.left = (e.pageX + offsetx - (width / 2)) + "px";
                    dStyle.top = (e.pageY + offsety) + "px";
                }
            }
    
            function changeTZ() {
                document.getElementById("city").innerHTML = document.getElementById("tz").value.substr(6);
                setCookie("TZ", document.getElementById("tz").selectedIndex);
            }
    
            function tick() {
                var today;
                today = new Date();
                document.getElementById("clock").innerHTML = today.getFullYear() + ""
                    + today.getMonth() + "" + today.getDay() + "" + today.getTime();
                /*
                   document.getElementById("clock").innerHTML = today.toLocaleString().replace(/(年|月)/g, "/").replace(/日/, ""); 
                   document.getElementById("clock").innerHTML = TimeAdd(today.toGMTString(), document.getElementById("tz").value);
                 */
                //alert(document.getElementById("clock").innerHTML);
                window.setTimeout("tick()", 1000);
            }
    
            function setCookie(name, value) {
                var today = new Date()
                var expires = new Date()
                expires.setTime(today.getTime() + 1000 * 60 * 60 * 24 * 365)
                document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString()
            }
    
            function getCookie(Name) {
                var search = Name + "=";
                if (document.cookie.length > 0) {
                    offset = document.cookie.indexOf(search);
                    if (offset != -1) {
                        offset += search.length;
                        end = document.cookie.indexOf(";", offset);
                        if (end == -1) end = document.cookie.length;
                        return unescape(document.cookie.substring(offset, end));
                    }
                    else return "";
                }
            }
    
            function fillSelect() {
                syd = document.getElementById("sy");
                syd.innerHTML = "";
                for (i = 1900; i < 2050; i++) {
                    ins = document.createElement("OPTION");
                    ins.innerHTML = i;
                    syd.appendChild(ins);
                }
                smd = document.getElementById("sm");
                smd.innerHTML = "";
                for (i = 1; i < 13; i++) {
                    ins = document.createElement("OPTION");
                    ins.innerHTML = i;
                    smd.appendChild(ins);
                }
            }
    
            function fillCalendar() {
                var gNum;
                var tablex = document.createElement("table");
                tablex.setAttribute("id", "week");
                for (i = 0; i < 6; i++) {
                    var trx1 = document.createElement("tr");
                    var trx2 = document.createElement("tr");
                    trx1.setAttribute("class", "tr1");
                    trx2.setAttribute("class", "tr2");
                    for (j = 0; j < 7; j++) {
                        gNum = i * 7 + j;
                        var tdx = document.createElement("td");
                        tdx.setAttribute("id", "sd" + gNum);
                        tdx.setAttribute("onMouseOver", 'mOvr(' + gNum + ')');
                        tdx.setAttribute("onMouseOut", "mOut()");
                        if (j == 0) {
                            tdx.setAttribute("class", "aorange");
                        }
                        else if (j == 6) {
                            if (i % 2 == 1) tdx.setAttribute("class", "aorange");
                            else tdx.setAttribute("class", "agreen");
                        }
                        else {
                            tdx.setAttribute("class", "one");
                        }
                        trx1.appendChild(tdx);
    
                        tdx = document.createElement("td");
                        tdx.setAttribute("id", "ld" + gNum);
                        tdx.setAttribute("onMouseOver", 'mOvr(' + gNum + ')');
                        tdx.setAttribute("onMouseOut", "mOut()");
                        trx2.appendChild(tdx);
                    }
                    tablex.appendChild(trx1);
                    tablex.appendChild(trx2);
                }
                document.getElementById("calendar").appendChild(tablex);
            }
            //界面初始化
            function initial() {
                //select
    
                dStyle = document.getElementById("detail").style;
                //fillSelect();
                //fillCalendar();
    
                document.getElementById("sy").selectedIndex = tY - 1900;
                document.getElementById("sm").selectedIndex = tM;
                log(1, "initial call drawCld() now");
    
                drawCld(tY, tM);
                //document.getElementById("tz").selectedIndex=getCookie("TZ");
                //if(document.getElementById("tz").selectedIndex<1)
                //    document.getElementById("tz").selectedIndex=39;
                //changeTZ();
                tick();
    
    
            }
    
            function TimeAdd(UTC, T) {
                var PlusMinus, DST, y;
                //alert(T); 
                if (T.substr(0, 1) == "-") {
                    PlusMinus = -1;
                }
                else {
                    PlusMinus = 1;
                }
                //UTC = UTC.substr(1
            }
            var Tlist = ["2013-5-6", "2013-5-16", "2013-5-7","2014-1-11"];
        </script>
    </head>
    <body onload="initial()">
    <p>var Tlist = ["2013-5-6", "2013-5-16", "2013-5-7","2014-1-11"]; 日程</p>
        <div id="ganler" style="background-color: #E6F0FA;  600px; border: solid 1px gray;">
            <div style="margin: auto 0px;">
                这个div用来控制位置
            </div>
            <table width="600" border="0" cellspacing="0" cellpadding="0">
                <tr>
                    <td style="text-align: center;">
                        <table width="600" cellpadding="0" cellspacing="0">
                            <tr>
                                <td colspan="2" valign="top">
                                    <!--头部开始-->
                                    <div id="date" style="text-align: center; border: 0px; border-bottom: solid 1px #E6F0FA">
                                        <p>
                                            公历
            <select name="select" id="sy" onchange="changeCld()">
                <option>1900</option>
                <option>1901</option>
                <option>1902</option>
                <option>1903</option>
                <option>1904</option>
                <option>1905</option>
                <option>1906</option>
                <option>1907</option>
    
                <option>1908</option>
                <option>1909</option>
                <option>1910</option>
                <option>1911</option>
                <option>1912</option>
                <option>1913</option>
    
                <option>1914</option>
                <option>1915</option>
                <option>1916</option>
                <option>1917</option>
                <option>1918</option>
                <option>1919</option>
    
                <option>1920</option>
                <option>1921</option>
                <option>1922</option>
                <option>1923</option>
                <option>1924</option>
                <option>1925</option>
    
                <option>1926</option>
                <option>1927</option>
                <option>1928</option>
                <option>1929</option>
                <option>1930</option>
                <option>1931</option>
    
                <option>1932</option>
                <option>1933</option>
                <option>1934</option>
                <option>1935</option>
                <option>1936</option>
                <option>1937</option>
    
                <option>1938</option>
                <option>1939</option>
                <option>1940</option>
                <option>1941</option>
                <option>1942</option>
                <option>1943</option>
    
                <option>1944</option>
                <option>1945</option>
                <option>1946</option>
                <option>1947</option>
                <option>1948</option>
                <option>1949</option>
    
                <option>1950</option>
                <option>1951</option>
                <option>1952</option>
                <option>1953</option>
                <option>1954</option>
                <option>1955</option>
    
                <option>1956</option>
                <option>1957</option>
                <option>1958</option>
                <option>1959</option>
                <option>1960</option>
                <option>1961</option>
    
                <option>1962</option>
                <option>1963</option>
                <option>1964</option>
                <option>1965</option>
                <option>1966</option>
                <option>1967</option>
    
                <option>1968</option>
                <option>1969</option>
                <option>1970</option>
                <option>1971</option>
                <option>1972</option>
                <option>1973</option>
    
                <option>1974</option>
                <option>1975</option>
                <option>1976</option>
                <option>1977</option>
                <option>1978</option>
                <option>1979</option>
    
                <option>1980</option>
                <option>1981</option>
                <option>1982</option>
                <option>1983</option>
                <option>1984</option>
                <option>1985</option>
    
                <option>1986</option>
                <option>1987</option>
                <option>1988</option>
                <option>1989</option>
                <option>1990</option>
                <option>1991</option>
    
                <option>1992</option>
                <option>1993</option>
                <option>1994</option>
                <option>1995</option>
                <option>1996</option>
                <option>1997</option>
    
                <option>1998</option>
                <option>1999</option>
                <option>2000</option>
                <option>2001</option>
                <option>2002</option>
                <option>2003</option>
    
                <option>2004</option>
                <option>2005</option>
                <option>2006</option>
                <option>2007</option>
                <option>2008</option>
                <option>2009</option>
    
                <option>2010</option>
                <option>2011</option>
                <option>2012</option>
                <option>2013</option>
                <option>2014</option>
                <option>2015</option>
    
                <option>2016</option>
                <option>2017</option>
                <option>2018</option>
                <option>2019</option>
                <option>2020</option>
                <option>2021</option>
    
                <option>2022</option>
                <option>2023</option>
                <option>2024</option>
                <option>2025</option>
                <option>2026</option>
                <option>2027</option>
    
                <option>2028</option>
                <option>2029</option>
                <option>2030</option>
                <option>2031</option>
                <option>2032</option>
                <option>2033</option>
    
                <option>2034</option>
                <option>2035</option>
                <option>2036</option>
                <option>2037</option>
                <option>2038</option>
                <option>2039</option>
    
                <option>2040</option>
                <option>2041</option>
                <option>2042</option>
                <option>2043</option>
                <option>2044</option>
                <option>2045</option>
    
                <option>2046</option>
                <option>2047</option>
                <option>2048</option>
                <option>2049</option>
                <option>2050</option>
                <option>2051</option>
            </select><select name="select2" id="sm" onchange="changeCld()">
                <option>1</option>
                <option>2</option>
                <option>3</option>
                <option>4</option>
                <option>5</option>
                <option>6</option>
    
                <option>7</option>
                <option>8</option>
                <option>9</option>
                <option>10</option>
                <option>11</option>
                <option>12</option>
    
            </select><span id="gz">&nbsp;</span>
                                        </p>
                                    </div>
                                    <!--头部结束-->
                                </td>
                            </tr>
                            <tr>
                                <!--日期开始-->
                                <td align="center" valign="top" style=" 500px; border: solid 0px #E6F0FA">
                                    <div id="calendar">
                                        <div id="detail">
    
                                            <div id="datedetail"></div>
                                            <div id="festival"></div>
                                        </div>
                                        <table id="calendarhead">
                                            <tr>
                                                <td></td>
                                                <td></td>
                                                <td></td>
    
                                                <td></td>
                                                <td></td>
                                                <td></td>
                                                <td></td>
                                            </tr>
                                        </table>
                                        <table id="week">
    
                                            <tr class="tr1">
                                                <td class="aorange" onmouseout="mOut()" onmouseover="mOvr(0)" id="sd0"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(1)" id="sd1"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(2)" id="sd2"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(3)" id="sd3"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(4)" id="sd4"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(5)" id="sd5"></td>
                                                <td class="agreen" onmouseout="mOut()" onmouseover="mOvr(6)" id="sd6"></td>
                                            </tr>
    
                                            <tr class="tr2">
                                                <td onmouseout="mOut()" onmouseover="mOvr(0)" id="ld0"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(1)" id="ld1"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(2)" id="ld2"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(3)" id="ld3"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(4)" id="ld4"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(5)" id="ld5"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(6)" id="ld6"></td>
                                            </tr>
    
                                            <tr class="tr1">
                                                <td class="aorange" onmouseout="mOut()" onmouseover="mOvr(7)" id="sd7"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(8)" id="sd8"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(9)" id="sd9"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(10)" id="sd10"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(11)" id="sd11"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(12)" id="sd12"></td>
                                                <td class="aorange" onmouseout="mOut()" onmouseover="mOvr(13)" id="sd13"></td>
                                            </tr>
    
                                            <tr class="tr2">
                                                <td onmouseout="mOut()" onmouseover="mOvr(7)" id="ld7"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(8)" id="ld8"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(9)" id="ld9"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(10)" id="ld10"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(11)" id="ld11"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(12)" id="ld12"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(13)" id="ld13"></td>
                                            </tr>
    
                                            <tr class="tr1">
                                                <td class="aorange" onmouseout="mOut()" onmouseover="mOvr(14)" id="sd14"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(15)" id="sd15"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(16)" id="sd16"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(17)" id="sd17"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(18)" id="sd18"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(19)" id="sd19"></td>
                                                <td class="agreen" onmouseout="mOut()" onmouseover="mOvr(20)" id="sd20"></td>
                                            </tr>
    
                                            <tr class="tr2">
                                                <td onmouseout="mOut()" onmouseover="mOvr(14)" id="ld14"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(15)" id="ld15"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(16)" id="ld16"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(17)" id="ld17"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(18)" id="ld18"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(19)" id="ld19"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(20)" id="ld20"></td>
                                            </tr>
    
                                            <tr class="tr1">
                                                <td class="aorange" onmouseout="mOut()" onmouseover="mOvr(21)" id="sd21"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(22)" id="sd22"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(23)" id="sd23"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(24)" id="sd24"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(25)" id="sd25"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(26)" id="sd26"></td>
                                                <td class="aorange" onmouseout="mOut()" onmouseover="mOvr(27)" id="sd27"></td>
                                            </tr>
    
                                            <tr class="tr2">
                                                <td onmouseout="mOut()" onmouseover="mOvr(21)" id="ld21"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(22)" id="ld22"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(23)" id="ld23"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(24)" id="ld24"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(25)" id="ld25"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(26)" id="ld26"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(27)" id="ld27"></td>
                                            </tr>
    
                                            <tr class="tr1">
                                                <td class="aorange" onmouseout="mOut()" onmouseover="mOvr(28)" id="sd28"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(29)" id="sd29"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(30)" id="sd30"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(31)" id="sd31"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(32)" id="sd32"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(33)" id="sd33"></td>
                                                <td class="agreen" onmouseout="mOut()" onmouseover="mOvr(34)" id="sd34"></td>
                                            </tr>
    
                                            <tr class="tr2">
                                                <td onmouseout="mOut()" onmouseover="mOvr(28)" id="ld28"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(29)" id="ld29"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(30)" id="ld30"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(31)" id="ld31"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(32)" id="ld32"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(33)" id="ld33"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(34)" id="ld34"></td>
                                            </tr>
    
                                            <tr class="tr1">
                                                <td class="aorange" onmouseout="mOut()" onmouseover="mOvr(35)" id="sd35"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(36)" id="sd36"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(37)" id="sd37"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(38)" id="sd38"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(39)" id="sd39"></td>
                                                <td class="one" onmouseout="mOut()" onmouseover="mOvr(40)" id="sd40"></td>
                                                <td class="aorange" onmouseout="mOut()" onmouseover="mOvr(41)" id="sd41"></td>
                                            </tr>
    
                                            <tr class="tr2">
                                                <td onmouseout="mOut()" onmouseover="mOvr(35)" id="ld35"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(36)" id="ld36"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(37)" id="ld37"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(38)" id="ld38"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(39)" id="ld39"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(40)" id="ld40"></td>
                                                <td onmouseout="mOut()" onmouseover="mOvr(41)" id="ld41"></td>
                                            </tr>
    
                                        </table>
                                    </div>
                                    <!--头部结束-->
                                </td>
                                <td valign="top">
                                    <!--选择项开始-->
                                    <div id="panel">
                                        <div onclick="pushBtm('YU')">上一年↑</div>
                                        <div onclick="pushBtm('YD')">下一年↓</div>
                                        <div onclick="pushBtm('MU')">上一月↑</div>
                                        <div onclick="pushBtm('MD')">下一月↓</div>
                                        <div onclick="pushBtm('')">当前月</div>
                                    </div>
                                    <!--选择项结束-->
                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>
            </table>
            <script language="javascript">
                function addFav(title, url) {   //  加入收藏夹
                    if (document.all) {
                        window.external.addFavorite(url, title);
                    }
                    else if (window.sidebar) {
                        window.sidebar.addPanel(title, url, "");
                    }
                }
            </script>
        </div>
    </body>
    </html>
  • 相关阅读:
    Leetcode 1349 参加考试的最大学生数
    卡特兰数小结
    Leetcode 76 最小覆盖字串 (滑动窗口)
    Leetcode 5331.跳跃游戏
    实现对properties文件的有序读写
    Android日志框架darks-logs使用教程
    Android入门-Service-start,end,bind,unbind之间的区别
    Android实用代码七段(一)
    [转帖]自动调整TextView字体大小以适应文字长度
    apk,task,android:process与android:sharedUserId的区别
  • 原文地址:https://www.cnblogs.com/ganler1988/p/3073477.html
Copyright © 2020-2023  润新知