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.pswp.cn/news/275845.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275845.shtml
英文地址,請注明出處:http://en.pswp.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基礎…

設計模式--享元模式實現C++

/********************************* *設計模式--享元模式實現 *C語言 *Author&#xff1a;WangYong *Blog:http://www.cnblogs.com/newwy ********************************/ #include <iostream> #include <cassert> #include <vector> #include <strin…

安卓加載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;技…

閉包,sync使用細節

代碼 先看代碼如下&#xff1a; func main() {var a []intfor i : 0; i < 100; i {go func() {a append(a, i)}()}time.Sleep(2 * time.Second)fmt.Println(a) } 這段測試代碼是想要一個元素為0到100的切片&#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…

SQL根據細粒度為天的查詢

當我們集成了一些前端框架&#xff0c;在某些展示頁面上往往具有某些查詢條件。而這其中日期查詢的處理又較為麻煩&#xff0c;此處&#xff0c;我羅列了一種當前臺上傳了一種默認的date格式的日期查詢數據至后臺未經Controller或Service層處理直接在SQL中處理的一種方式——即…

企業生產經營相關英文及縮寫之(11)--Genenic 普通書寫

Genenic 普通書寫 ASAP As soon as possible 盡早 BCC Blink Carbon Copy 無信頭抄送&#xff0c;無信頭副本 BR Best Regards 最誠致的問候 BTW By the way 順便問一下 CC Carbon Copy …

java金額類型_Java中存儲金額用什么數據類型?

很早之前, 記得一次面試, 面試官問存儲金錢用什么數據類型? 當時只知道8種數據類型(boolean, byte, short, int, long, float, double, char)的我, 回答了double, 因為我覺得double是雙精度類型, 最適合, 但是面試官告訴我應該用BigDecimal! 最近在做支付的項目, 才對這種數據…

信息技術與信息革命

信息資源管理學什么 圍繞 信息這份戰略資源&#xff0c;從信息資源的管理角度出發&#xff0c;以信息系統為主要研究對象&#xff0c; 研討了信息系統規劃&#xff0c;信息系統開發 信息系統的內容&#xff0c;信息系統安全以及信息資源管理中 涉及的法律法規 知識框架 信息技術…

React Hooks 不知道怎么學?看這篇

大家好&#xff0c;我是若川。最近跟朋友聊技術&#xff0c;發現越來越多的大廠&#xff0c;都優先考慮用 React 做項目&#xff0c;在面試中也經常會考察對 React Hooks 的理解。其實&#xff0c;我一直覺得&#xff0c;React 才是前端的正確打開方式。當然&#xff0c;并不是…

數字與企鵝的戰爭,看周紅衣的高明之處

本文非原創&#xff0c;轉自月光    360與QQ最近的一輪大戰已經接近尾聲&#xff0c;毫無疑問的是&#xff0c;360在這一輪對決中以勝利告終。這場戰爭持續了整整一個月零兩天&#xff0c;先后經歷了幾次小小的高潮&#xff0c;最終周鴻祎祭出絕招&#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…

java wsdl xfire_java調用wsdl xfire和cxf兩種方式

xfire 如下&#xff1a;String spID "";String password "";String accessCode "";String content "";String mobileString "";String url "";String operateName "Submit";Object[] object newObject…

請求與響應

HTTP 請求與響應 HTTP 請求的組成的四部分&#xff1a; 1 動詞 路徑 協議/版本2 Key1: value12 Key2: value22 Key3: value32 Content-Type: application/x-www-form-urlencoded2 Host: www.baidu.com2 User-Agent: curl/7.54.034 要上傳的數據 關于以上各部分內容的碎碎念&…