C#日期控件(js版)

js 脚本代码:

<script type="text/javascript">
    //----------------------------------------------------------------------------
    //----------------------------------------------------------------------------
    //  这是一个日历 Javascript 页面脚本控件,适用于微软的 IE (5.0以上)浏览器
    //  主调用函数是 setday(this,[object])和setday(this),[object]是控件输出的控件名,举两个例子:
    //  一、<input name=txt><input type=button value=setday οnclick="setday(this,document.all.txt)">
    //  二、<input οnfοcus="setday(this)">
    //  本日历的年份限制是(1000 - 9999)
    //  按ESC键关闭该控件
    //  在年和月的显示地方点击时会分别出年与月的下拉框
    //  控件外任意点击一点即可关闭该控件


    //==================================================== 参数设定部分 =======================================================
    var bMoveable = true;  //设置日历是否可以拖动
    var _VersionInfo = "关闭的快捷键:[Esc]"

    //==================================================== WEB 页面显示部分 =====================================================
    var strFrame;  //存放日历层的HTML代码
    document.writeln('<iframe bgcolor="#000000" id=meizzDateLayer Author=wayx frameborder=0 style="position: absolute;  width: 186px; height: 247px; z-index: 9998; display: none;" scrolling="no"></iframe>');
    strFrame = '<style>';
    strFrame += 'INPUT.button{BORDER-RIGHT: #B3C9E1 1px solid;BORDER-TOP: #B3C9E1 1px solid;BORDER-LEFT: #B3C9E1 1px solid;';
    strFrame += 'BORDER-BOTTOM: #ff9900 1px solid;BACKGROUND-COLOR: #EDF2F8;font-family:宋体;}';
    strFrame += 'TD{FONT-SIZE: 9pt;font-family:宋体;}';
    strFrame += '</style>';
    strFrame += '<scr' + 'ipt>';
    strFrame += 'var datelayerx,datelayery; /*存放日历控件的鼠标位置*/';
    strFrame += 'var bDrag; /*标记是否开始拖动*/';
    strFrame += 'function document.onmousemove() /*在鼠标移动事件中,如果开始拖动日历,则移动日历*/';
    strFrame += '{if(bDrag && window.event.button==1)';
    strFrame += ' {var DateLayer=parent.document.all.meizzDateLayer.style;';
    strFrame += '  DateLayer.posLeft += window.event.clientX-datelayerx;/*由于每次移动以后鼠标位置都恢复为初始的位置,因此写法与div中不同*/';
    strFrame += '  DateLayer.posTop += window.event.clientY-datelayery;}}';
    strFrame += 'function DragStart()  /*开始日历拖动*/';
    strFrame += '{var DateLayer=parent.document.all.meizzDateLayer.style;';
    strFrame += ' datelayerx=window.event.clientX;';
    strFrame += ' datelayery=window.event.clientY;';
    strFrame += ' bDrag=true;}';
    strFrame += 'function DragEnd(){  /*结束日历拖动*/';
    strFrame += ' bDrag=false;}';
    strFrame += '</scr' + 'ipt>';
    strFrame += '<div style="z-index:9999;position: absolute; left:0; top:0;" onselectstart="return false"><span id=tmpSelectYearLayer Author=wayx style="z-index: 9999;position: absolute;top: 3; left: 19;display: none"></span>';
    strFrame += '<span id=tmpSelectMonthLayer Author=wayx style="z-index: 9999;position: absolute;top: 3; left: 78;display: none"></span>';
    strFrame += '<table style="FILTER:dropshadow(color=#EDEDF8,offx=3.3,offy=3.3,positive=1);" cellSpacing="0" cellPadding="0" width="100%" border="0"><tr><td>';
    // 控件边框颜色
    strFrame += '<table border=1 cellspacing=0 cellpadding=0 width=182 height=160 bgColor="#FFFFFF" borderColorLight=#7197CA borderColorDark="#ffffff"  Author="wayx">';
    strFrame += '  <tr Author="wayx"><td width=182 height=23 Author="wayx" bgcolor=#FFFFFF><table border=0 cellspacing=1 cellpadding=0 width=180 Author="wayx" height=23>';
    strFrame += '      <tr align=center Author="wayx"><td width=16 align=center bgcolor=#B6CAE4 style="font-size:12px;cursor: hand;color: #ffffff" ';
    strFrame += '        οnclick="parent.meizzPrevM()" title="向前翻 1 月" Author=meizz><b Author=meizz>&lt;</b>';
    strFrame += '        </td><td width=60 align=center style="font-size:12px;cursor:default" Author=meizz ';
    strFrame += 'οnmοuseοver="style.backgroundColor=\'#D7E1F0\'" οnmοuseοut="style.backgroundColor=\'white\'" ';
    strFrame += 'οnclick="parent.tmpSelectYearInnerHTML(this.innerText.substring(0,4))" title="点击这里选择年份"><span Author=meizz id=meizzYearHead></span></td>';
    strFrame += '<td width=48 align=center style="font-size:12px;cursor:default" Author=meizz οnmοuseοver="style.backgroundColor=\'#D7E1F0\'" ';
    strFrame += ' οnmοuseοut="style.backgroundColor=\'white\'" οnclick="parent.tmpSelectMonthInnerHTML(this.innerText.length==3?this.innerText.substring(0,1):this.innerText.substring(0,2))"';
    strFrame += '        title="点击这里选择月份"><span id=meizzMonthHead Author=meizz></span></td>';
    strFrame += '        <td width=16 bgcolor=#B6CAE4 align=center style="font-size:12px;cursor: hand;color: #ffffff" ';
    strFrame += '         οnclick="parent.meizzNextM()" title="向后翻 1 月" Author=meizz><b Author=meizz>&gt;</b></td></tr>';
    strFrame += '    </table></td></tr>';
    strFrame += '  <tr Author="wayx"><td width=180 height=18 Author="wayx">';
    strFrame += '<table border=1 cellspacing=0 cellpadding=0 bgcolor=#618BC5 ' + (bMoveable ? 'οnmοusedοwn="DragStart()" οnmοuseup="DragEnd()"' : '');
    strFrame += ' BORDERCOLORLIGHT=#3677b1 bgcolor=#5168C8 BORDERCOLORDARK=#FFFFFF width="100%" height=25 Author="wayx" style="cursor:' + (bMoveable ? 'move' : 'default') + '">';
    strFrame += '<tr Author="wayx" valign="middle" align="center"><td style="font-size:12px;color:#FFFFFF" Author=meizz><b>日</b></td>';
    strFrame += '<td style="font-size:12px;color:#FFFFFF"  Author=meizz><b>一</b></td><td style="font-size:12px;color:#FFFFFF" Author=meizz><b>二</b></td>';
    strFrame += '<td style="font-size:12px;color:#FFFFFF" Author=meizz><b>三</b></td><td style="font-size:12px;color:#FFFFFF" Author=meizz><b>四</b></td>';
    strFrame += '<td style="font-size:12px;color:#FFFFFF"   Author=meizz><b>五</b></td><td style="font-size:12px;color:#FFFFFF" Author=meizz><b>六</b></td></tr>';
    strFrame += '</table></td></tr><!-- Author:F.R.Huang(meizz) http://www.meizz.com/ mail: meizz@hzcnc.com 2002-10-8 -->';
    strFrame += '  <tr Author="wayx"><td width="100%" height=120 Author="wayx">';
    strFrame += '    <table border=1 cellspacing=2 cellpadding=0 borderColorDark=#ffffff bgColor=#FFFFFF borderColorLight=#83A4D1 width="100%" height=120 Author="wayx">';
    var n = 0; for (j = 0; j < 5; j++) {
        strFrame += ' <tr align=center Author="wayx">'; for (i = 0; i < 7; i++) {
            strFrame += '<td width=25 height=25 id=meizzDay' + n + ' style="font-size:12px" Author=meizz οnclick=parent.meizzDayClick(this.innerText,0)></td>'; n++;
        }
        strFrame += '</tr>';
    }
    strFrame += '      <tr align=center Author="wayx">';
    for (i = 35; i < 39; i++) strFrame += '<td width=25 height=25 id=meizzDay' + i + ' style="font-size:12px" Author=wayx οnclick="parent.meizzDayClick(this.innerText,0)"></td>';
    strFrame += '        <td colspan=3 align=right Author=meizz><span οnclick=parent.closeLayer() style="font-size:12px;cursor: hand"';
    strFrame += '         Author=meizz title="' + _VersionInfo + '"><u>关闭</u></span>&nbsp;</td></tr>';
    strFrame += '    </table></td></tr><tr Author="wayx"><td Author="wayx">';
    strFrame += '        <table border=0 cellspacing=1 cellpadding=0 width=100% Author="wayx" bgcolor=#FFFFFF>';
    strFrame += '          <tr Author="wayx"><td Author=meizz align=left><input Author=meizz type=button class=button style="cursor:hand" value="<<" title="向前翻 1 年" οnclick="parent.meizzPrevY()" ';
    strFrame += '             οnfοcus="this.blur()" style="font-size: 12px; height: 20px"><input Author=meizz class=button title="向前翻 1 月" type=button ';
    strFrame += '             value="< " style="cursor:hand" οnclick="parent.meizzPrevM()" οnfοcus="this.blur()" style="font-size: 12px; height: 20px"></td><td ';
    strFrame += '             Author=meizz align=center><input Author=meizz style="cursor:hand"  type=button class=button value=Today οnclick="parent.meizzToday()" ';
    strFrame += '             οnfοcus="this.blur()" title="当前日期" style="font-size: 12px; height: 20px; cursor:hand"></td><td ';
    strFrame += '             Author=meizz align=right><input Author=meizz type=button class=button value=" >" style="cursor:hand" οnclick="parent.meizzNextM()" ';
    strFrame += '             οnfοcus="this.blur()" title="向后翻 1 月" class=button style="font-size: 12px; height: 20px"><input ';
    strFrame += '             Author=meizz type=button class=button style="cursor:hand" value=">>" title="向后翻 1 年" οnclick="parent.meizzNextY()"';
    strFrame += '             οnfοcus="this.blur()" style="font-size: 12px; height: 20px"></td>';
    strFrame += '</tr></table></td></tr></table></td></tr></table></div>';

    window.frames.meizzDateLayer.document.writeln(strFrame);
    window.frames.meizzDateLayer.document.close();  //解决ie进度条不结束的问题

    //==================================================== WEB 页面显示部分 ======================================================
    var outObject;
    var outButton;  //点击的按钮
    var outDate = "";  //存放对象的日期
    var odatelayer = window.frames.meizzDateLayer.document.all;  //存放日历对象
    function setday(tt, obj) //主调函数
    {
        if (arguments.length > 2) { alert("对不起!传入本控件的参数太多!"); return; }
        if (arguments.length == 0) { alert("对不起!您没有传回本控件任何参数!"); return; }
        var dads = document.all.meizzDateLayer.style;
        var th = tt;
        var ttop = tt.offsetTop;     //TT控件的定位点高
        var thei = tt.clientHeight;  //TT控件本身的高
        var tleft = tt.offsetLeft;    //TT控件的定位点宽
        var ttyp = tt.type;          //TT控件的类型
        while (tt = tt.offsetParent) { ttop += tt.offsetTop; tleft += tt.offsetLeft; }
        dads.top = (ttyp == "image") ? ttop + thei : ttop + thei + 6;
        dads.left = tleft;
        outObject = (arguments.length == 1) ? th : obj;
        outButton = (arguments.length == 1) ? null : th; //设定外部点击的按钮
        //根据当前输入框的日期显示日历的年月
        var reg = /^(\d+)-(\d{1,2})-(\d{1,2})$/;
        var r = outObject.value.match(reg);
        if (r != null) {
            r[2] = r[2] - 1;
            var d = new Date(r[1], r[2], r[3]);
            if (d.getFullYear() == r[1] && d.getMonth() == r[2] && d.getDate() == r[3]) {
                outDate = d;  //保存外部传入的日期
            }
            else outDate = "";
            meizzSetDay(r[1], r[2] + 1);
        }
        else {
            outDate = "";
            meizzSetDay(new Date().getFullYear(), new Date().getMonth() + 1);
        }
        dads.display = '';

        event.returnValue = false;
    }

    var MonHead = new Array(12);         //定义阳历中每个月的最大天数
    MonHead[0] = 31; MonHead[1] = 28; MonHead[2] = 31; MonHead[3] = 30; MonHead[4] = 31; MonHead[5] = 30;
    MonHead[6] = 31; MonHead[7] = 31; MonHead[8] = 30; MonHead[9] = 31; MonHead[10] = 30; MonHead[11] = 31;

    var meizzTheYear = new Date().getFullYear(); //定义年的变量的初始值
    var meizzTheMonth = new Date().getMonth() + 1; //定义月的变量的初始值
    var meizzWDay = new Array(39);               //定义写日期的数组

    function document.onclick() //任意点击时关闭该控件 //ie6的情况可以由下面的切换焦点处理代替
    {
        with (window.event) {
            if (srcElement.getAttribute("Author") == null && srcElement != outObject && srcElement != outButton)
                closeLayer();
        }
    }

    function document.onkeyup()  //按Esc键关闭,切换焦点关闭
    {
        if (window.event.keyCode == 27) {
            if (outObject) outObject.blur();
            closeLayer();
        }
        else if (document.activeElement)
            if (document.activeElement.getAttribute("Author") == null && document.activeElement != outObject && document.activeElement != outButton) {
                closeLayer();
            }
    }

    function meizzWriteHead(yy, mm)  //往 head 中写入当前的年与月
    {
        odatelayer.meizzYearHead.innerText = yy + " 年";
        odatelayer.meizzMonthHead.innerText = mm + " 月";
    }

    function tmpSelectYearInnerHTML(strYear) //年份的下拉框
    {
        if (strYear.match(/\D/) != null) { alert("年份输入参数不是数字!"); return; }
        var m = (strYear) ? strYear : new Date().getFullYear();
        if (m < 1000 || m > 9999) { alert("年份值不在 1000 到 9999 之间!"); return; }
        var n = m - 10;
        if (n < 1000) n = 1000;
        if (n + 26 > 9999) n = 9974;
        var s = "&nbsp;&nbsp;&nbsp;<select Author=meizz name=tmpSelectYear style='font-size: 12px' "
        s += "οnblur='document.all.tmpSelectYearLayer.style.display=\"none\"' "
        s += "οnchange='document.all.tmpSelectYearLayer.style.display=\"none\";"
        s += "parent.meizzTheYear = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'>\r\n";
        var selectInnerHTML = s;
        for (var i = n; i < n + 26; i++) {
            if (i == m)
            { selectInnerHTML += "<option Author=wayx value='" + i + "' selected>" + i + "年" + "</option>\r\n"; }
            else { selectInnerHTML += "<option Author=wayx value='" + i + "'>" + i + "年" + "</option>\r\n"; }
        }
        selectInnerHTML += "</select>";
        odatelayer.tmpSelectYearLayer.style.display = "";
        odatelayer.tmpSelectYearLayer.innerHTML = selectInnerHTML;
        odatelayer.tmpSelectYear.focus();
    }

    function tmpSelectMonthInnerHTML(strMonth) //月份的下拉框
    {
        if (strMonth.match(/\D/) != null) { alert("月份输入参数不是数字!"); return; }
        var m = (strMonth) ? strMonth : new Date().getMonth() + 1;
        var s = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<select Author=meizz name=tmpSelectMonth style='font-size: 12px' "
        s += "οnblur='document.all.tmpSelectMonthLayer.style.display=\"none\"' "
        s += "οnchange='document.all.tmpSelectMonthLayer.style.display=\"none\";"
        s += "parent.meizzTheMonth = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'>\r\n";
        var selectInnerHTML = s;
        for (var i = 1; i < 13; i++) {
            if (i == m)
            { selectInnerHTML += "<option Author=wayx value='" + i + "' selected>" + i + "月" + "</option>\r\n"; }
            else { selectInnerHTML += "<option Author=wayx value='" + i + "'>" + i + "月" + "</option>\r\n"; }
        }
        selectInnerHTML += "</select>";
        odatelayer.tmpSelectMonthLayer.style.display = "";
        odatelayer.tmpSelectMonthLayer.innerHTML = selectInnerHTML;
        odatelayer.tmpSelectMonth.focus();
    }

    function closeLayer()               //这个层的关闭
    {
        document.all.meizzDateLayer.style.display = "none";
    }

    function IsPinYear(year)            //判断是否闰平年
    {
        if (0 == year % 4 && ((year % 100 != 0) || (year % 400 == 0))) return true; else return false;
    }

    function GetMonthCount(year, month)  //闰年二月为29天
    {
        var c = MonHead[month - 1]; if ((month == 2) && IsPinYear(year)) c++; return c;
    }
    function GetDOW(day, month, year)     //求某天的星期几
    {
        var dt = new Date(year, month - 1, day).getDay() / 7; return dt;
    }

    function meizzPrevY()  //往前翻 Year
    {
        if (meizzTheYear > 999 && meizzTheYear < 10000) { meizzTheYear--; }
        else { alert("年份超出范围(1000-9999)!"); }
        meizzSetDay(meizzTheYear, meizzTheMonth);
    }
    function meizzNextY()  //往后翻 Year
    {
        if (meizzTheYear > 999 && meizzTheYear < 10000) { meizzTheYear++; }
        else { alert("年份超出范围(1000-9999)!"); }
        meizzSetDay(meizzTheYear, meizzTheMonth);
    }
    function meizzToday()  //Today Button
    {
        var today;
        meizzTheYear = new Date().getFullYear();
        meizzTheMonth = new Date().getMonth() + 1;
        today = new Date().getDate();
        //meizzSetDay(meizzTheYear,meizzTheMonth);
        if (outObject) {
            outObject.value = meizzTheYear + "-" + meizzTheMonth + "-" + today;
        }
        closeLayer();
    }
    function meizzPrevM()  //往前翻月份
    {
        if (meizzTheMonth > 1) { meizzTheMonth-- } else { meizzTheYear--; meizzTheMonth = 12; }
        meizzSetDay(meizzTheYear, meizzTheMonth);
    }
    function meizzNextM()  //往后翻月份
    {
        if (meizzTheMonth == 12) { meizzTheYear++; meizzTheMonth = 1 } else { meizzTheMonth++ }
        meizzSetDay(meizzTheYear, meizzTheMonth);
    }

    function meizzSetDay(yy, mm)   //主要的写程序**********
    {
        meizzWriteHead(yy, mm);
        //设置当前年月的公共变量为传入值
        meizzTheYear = yy;
        meizzTheMonth = mm;

        for (var i = 0; i < 39; i++) { meizzWDay[i] = "" };  //将显示框的内容全部清空
        var day1 = 1, day2 = 1, firstday = new Date(yy, mm - 1, 1).getDay();  //某月第一天的星期几
        for (i = 0; i < firstday; i++) meizzWDay[i] = GetMonthCount(mm == 1 ? yy - 1 : yy, mm == 1 ? 12 : mm - 1) - firstday + i + 1 //上个月的最后几天
        for (i = firstday; day1 < GetMonthCount(yy, mm) + 1; i++) { meizzWDay[i] = day1; day1++; }
        for (i = firstday + GetMonthCount(yy, mm); i < 39; i++) { meizzWDay[i] = day2; day2++ }
        for (i = 0; i < 39; i++) {
            var da = eval("odatelayer.meizzDay" + i)     //书写新的一个月的日期星期排列
            if (meizzWDay[i] != "") {
                //初始化边框
                da.borderColorLight = "#76A0CF";
                da.borderColorDark = "#76A0CF";
                if (i < firstday)  //上个月的部分
                {
                    da.innerHTML = "<font style=' color: #B5C5D2;'>" + meizzWDay[i] + "</font>";
                    da.title = (mm == 1 ? 12 : mm - 1) + "月" + meizzWDay[i] + "日";
                    da.onclick = Function("meizzDayClick(this.innerText,-1)");

                    if (!outDate)
                        da.style.backgroundColor = ((mm == 1 ? yy - 1 : yy) == new Date().getFullYear() &&
       (mm == 1 ? 12 : mm - 1) == new Date().getMonth() + 1 && meizzWDay[i] == new Date().getDate()) ?
       "#E4E3F2" : "#FFFFFF";
                    else {
                        da.style.backgroundColor = ((mm == 1 ? yy - 1 : yy) == outDate.getFullYear() && (mm == 1 ? 12 : mm - 1) == outDate.getMonth() + 1 &&
      meizzWDay[i] == outDate.getDate()) ? "#E8F5E7" : // 选中日期颜色
      (((mm == 1 ? yy - 1 : yy) == new Date().getFullYear() && (mm == 1 ? 12 : mm - 1) == new Date().getMonth() + 1 &&
      meizzWDay[i] == new Date().getDate()) ? "#E4E3F2" : "#FFFFFF"); // 当前系统时间颜色
                        //将选中的日期显示为凹下去
                        if ((mm == 1 ? yy - 1 : yy) == outDate.getFullYear() && (mm == 1 ? 12 : mm - 1) == outDate.getMonth() + 1 &&
      meizzWDay[i] == outDate.getDate()) {
                            //da.borderColorLight="#E4E3F2";
                            //     da.borderColorDark="#E4E3F2";  //  选择日期边框颜色
                        }
                    }

                }
                else if (i >= firstday + GetMonthCount(yy, mm))  //下个月的部分
                {
                    da.innerHTML = "<font style=' color: #B5C5D2;'>" + meizzWDay[i] + "</font>";
                    da.title = (mm == 12 ? 1 : mm + 1) + "月" + meizzWDay[i] + "日";
                    da.onclick = Function("meizzDayClick(this.innerText,1)");
                    if (!outDate)
                        da.style.backgroundColor = ((mm == 12 ? yy + 1 : yy) == new Date().getFullYear() &&
       (mm == 12 ? 1 : mm + 1) == new Date().getMonth() + 1 && meizzWDay[i] == new Date().getDate()) ?
       "#E4E3F2" : "#FFFFFF";
                    else {
                        da.style.backgroundColor = ((mm == 12 ? yy + 1 : yy) == outDate.getFullYear() && (mm == 12 ? 1 : mm + 1) == outDate.getMonth() + 1 &&
      meizzWDay[i] == outDate.getDate()) ? "#E8F5E7" : // 选中日期颜色
      (((mm == 12 ? yy + 1 : yy) == new Date().getFullYear() && (mm == 12 ? 1 : mm + 1) == new Date().getMonth() + 1 &&
      meizzWDay[i] == new Date().getDate()) ? "#E4E3F2" : "#FFFFFF"); // 当前系统时间
                        //将选中的日期显示为凹下去
                        if ((mm == 12 ? yy + 1 : yy) == outDate.getFullYear() && (mm == 12 ? 1 : mm + 1) == outDate.getMonth() + 1 &&
      meizzWDay[i] == outDate.getDate()) {
                            da.borderColorLight = "#E4E3F2";
                            da.borderColorDark = "#E4E3F2";  //  选择日期边框颜色
                        }
                    }
                }
                else  //本月的部分
                {
                    da.innerHTML = "<font style=' color: #3E5468;'>" + meizzWDay[i] + "</FONT>";
                    da.title = mm + "月" + meizzWDay[i] + "日";
                    da.onclick = Function("meizzDayClick(this.innerText,0)");  //给td赋予onclick事件的处理
                    //如果是当前选择的日期,则显示亮蓝色的背景;如果是当前日期,则显示暗黄色背景
                    if (!outDate)
                        da.style.backgroundColor = (yy == new Date().getFullYear() && mm == new Date().getMonth() + 1 && meizzWDay[i] == new Date().getDate()) ?
       "#FFFFFF" : "#FFFFFF";
                    else {
                        da.style.backgroundColor = (yy == outDate.getFullYear() && mm == outDate.getMonth() + 1 && meizzWDay[i] == outDate.getDate()) ?
       "#D5ECD2" : ((yy == new Date().getFullYear() && mm == new Date().getMonth() + 1 && meizzWDay[i] == new Date().getDate()) ?
       "#E4E3F2" : "#F8F8FC"); // 前一个当前系统时间,后一个是本月时间低色
                        //将选中的日期显示为凹下去
                        if (yy == outDate.getFullYear() && mm == outDate.getMonth() + 1 && meizzWDay[i] == outDate.getDate()) {
                            //da.borderColorLight="#E4E3F2";
                            //da.borderColorDark="#E4E3F2";  //  选择日期边框颜色
                        }
                    }
                }
                da.style.cursor = "hand"
                da.onmouseover = Function("this.backgroundColor='#000000';this.borderColorDark='#000099';this.borderColorLight='#000099';");
                da.onmouseout = Function("this.bgColor='#000000';this.borderColorDark='#9CBADE';this.borderColorLight='#9CBADE';");
            }
            else {
                da.innerHTML = ""; da.style.backgroundColor = ""; da.style.cursor = "default"; da.onmouseover = Function("this.backgroundColor='#000000';this.borderColorDark='#000099';this.borderColorLight='#000099';");
                da.onmouseout = Function("this.bgColor='#000000';this.borderColorDark='#9CBADE';this.borderColorLight='#9CBADE';");
            }
        }
    }

    function meizzDayClick(n, ex)  //点击显示框选取日期,主输入函数*************
    {
        var yy = meizzTheYear;
        var mm = parseInt(meizzTheMonth) + ex; //ex表示偏移量,用于选择上个月份和下个月份的日期
        //判断月份,并进行对应的处理
        if (mm < 1) {
            yy--;
            mm = 12 + mm;
        }
        else if (mm > 12) {
            yy++;
            mm = mm - 12;
        }

        if (mm < 10) { mm = "0" + mm; }
        if (outObject) {
            if (!n) {//outObject.value="";
                return;
            }
            if (n < 10) { n = "0" + n; }
            outObject.value = yy + "-" + mm + "-" + n; //注:在这里你可以输出改成你想要的格式
            closeLayer();
        }
        else { closeLayer(); alert("您所要输出的控件对象并不存在!"); }
    }

</script>

 

前台页面用法:

<asp:TextBox ID="txtEndDate" οnfοcus="setday(this);" runat="server"></asp:TextBox>

 

转载于:https://www.cnblogs.com/liushanshan/archive/2010/10/18/1854282.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python第三周测试_python第三周小测

1.读取一个文件&#xff0c;显示除了井号(#)开头的行意外的所有行# -*- coding: utf-8 -*-"""Created on Tue May 28 09:37:08 2019author: Omega_Sendoh"""#打开文件f open("install-sh","r")#读取文件的所有行&#xff0…

「Vueconf」探索 Vue3 中 的 JSX

大家好&#xff0c;我是若川。今天再分享 Vueconf 的一篇文章。另外 Vueconf 主办方提供的录播链接是&#xff1a; https://www.bilibili.com/read/mobile?id11408693&#xff0c;感兴趣可以复制观看。点击下方卡片关注我、加个星标。学习源码整体架构系列、年度总结、JS基础…

安卓加载asset中的json文件_Android解析Asset目录下的json文件

在app module中的src/main/assets目录下我们准备了两个json文件&#xff1a;destination.json如下&#xff1a;{"main/tabs/sofa": {"isFragment": true,"asStarter": false,"needLogin": false,"pageUrl": "main/tabs…

一文搞懂 Promise、Genarator、 Async 三者的区别和联系

非985/211大学毕业&#xff0c;软件工程专业&#xff0c;前端&#xff0c;坐标&#xff1a;北京工作三年多&#xff0c;第一家人数 30 多人的创业公司&#xff0c;1 年多。第二家属于前端技术不错的公司&#xff0c;2 年多。01我是一个喜欢在技术领域“折腾”的人&#xff0c;技…

dynamic 仪表板_仪表板完成百万美元交易

dynamic 仪表板问题 (The Problem) Anybody dealing with tech products and data-focused services runs into the same fundamental problem: what you do is technical but non-technical people control the budget. In other words:任何处理高科技产品和以数据为中心的服务…

checkStyle -- 代码风格一致

download page: http://sourceforge.net/project/showfiles.php?group_id80344&package_id107587 转载于:https://www.cnblogs.com/xuqiang/archive/2010/10/26/1953431.html

在线VS Code阅读源码神器 github1s

大家好&#xff0c;我是若川。github1s大部分人知道了&#xff0c;但还是有一部分不知道。我在掘金发过沸点和知乎发过想法还是有挺多人不知道&#xff0c;所以再发公众号推荐下。点击下方卡片关注我、加个星标。学习源码整体架构系列、年度总结、JS基础系列近日&#xff0c;一…

lenze变频器怎么更改地址_英威腾变频器GD300维修

英威腾变频器GD300维修英威腾变频器GD300维修41. 问题&#xff1a;变频器跟PLC采用485通讯不上答&#xff1a;1.检查变频器的通讯地址是否正确&#xff0c;如果采用通讯启动&#xff0c;检查P0.01是否为1&#xff0c;如果通过通讯设定频率&#xff0c;检查P0.068&#xff0c;P0…

代码设计的基础原则_设计原则:良好设计的基础

代码设计的基础原则As designers, it’s our goal to pass information in the most pleasing way possible. Starting out, there’s a wealth of literature to read and videos to watch that can get quite overwhelming to take in at a glance. People take different ro…

java金额类型_Java中存储金额用什么数据类型?

很早之前, 记得一次面试, 面试官问存储金钱用什么数据类型? 当时只知道8种数据类型(boolean, byte, short, int, long, float, double, char)的我, 回答了double, 因为我觉得double是双精度类型, 最适合, 但是面试官告诉我应该用BigDecimal! 最近在做支付的项目, 才对这种数据…

React Hooks 不知道怎么学?看这篇

大家好&#xff0c;我是若川。最近跟朋友聊技术&#xff0c;发现越来越多的大厂&#xff0c;都优先考虑用 React 做项目&#xff0c;在面试中也经常会考察对 React Hooks 的理解。其实&#xff0c;我一直觉得&#xff0c;React 才是前端的正确打开方式。当然&#xff0c;并不是…

ui原型设计工具_UI设计师的工具包,用于专业模型,原型和产品插图

ui原型设计工具This is a followup to my previous article 这是我上一篇文章的后续 visual tools for UX Designers视觉工具Tools don’t make designs better– you do! It doesn’t matter if you paid a lot of money for the latest software, or if you simply have a p…

前端 Offer 提速:如何写出有亮点的简历

大家好&#xff0c;我是若川。今天推荐一篇8年工作经验字节大佬的文章&#xff0c;如何写出有亮点的简历。可以收藏常看。点击下方卡片关注我、加个星标。学习源码整体架构系列、年度总结、JS基础系列先来个灵魂拷问&#xff1a;「你与他人相比&#xff0c;有什么能形成明显区分…

2008中的membership profile操作(转)

<profile > <properties> <add name"jimmy" /> </< span>properties> </< span>profile> 然后就那么简单,后台就能通过Profile拿到: Profile.jimmy "Pumpkin Ravioli"; 然后~通过这种方式就跟Session一样&a…

css网格_一个CSS网格可以全部统治

css网格The case for using one CSS grid for your entire website在整个网站上使用一个CSS网格的情况 CSS网格与Flexbox (CSS Grid vs Flexbox) In the dark ages, we used table, a few years ago we used float and before today most of us used flex . Of course, these …

java 高级泛型_Java 泛型高级

1、限制泛型可用类型在定义泛型类别时&#xff0c;预设可以使用任何的类型来实例化泛型中的类型&#xff0c;但是如果想要限制使用泛型的类别时&#xff0c;只能用某个特定类型或者其子类型才能实例化该类型时&#xff0c;使用extends关键字指定这个类型必须是继承某个类&#…

2021 年最值得使用的 Node.js 框架

大家好&#xff0c;我是若川。今天推荐一篇译文&#xff1a;2021年最值得使用nodejs框架&#xff0c;值得收藏&#xff0c;很快能看完。点击下方卡片关注我、加个星标。学习源码整体架构系列、年度总结、JS基础系列Node.js 是最敏捷的服务端 web 应用平台&#xff0c;因为它为应…

面试被拒绝如何争取_争取反馈

面试被拒绝如何争取Let me start by saying that Dribbble is awesome. I’ve been a member of the Dribbble community for years. I swoon over the beautiful design I see throughout the site. Dribbble is among the most popular places to go for inspiration and whi…

中台之上(二):为什么业务架构存在20多年,技术人员还觉得它有点虚?

业务架构这个词大家时常听到&#xff0c;但是能解释得清楚的却不多&#xff0c;撩撩度娘&#xff0c;你就会发现&#xff0c;不少人问及业务架构和应用架构的关系&#xff0c;聊天时&#xff0c;也常有人问起业务架构师和产品经理什么区别&#xff1f;业务架构分析和需求分析什…

你对webpack了解多少?

大家好&#xff0c;我是若川。之前有一个朋友给我留言&#xff1a;自己目前在一家小厂工作&#xff0c;对webpack的使用比较熟悉&#xff0c;想要跳槽去大厂&#xff0c;但是纠结是否还需要深入学习webpack&#xff08;因为觉得学了也用不到&#xff0c;但又怕面试不通过&#…