在文本框中添加时间控件

vb动态加载控件 Option Explicit Dim con As New ADODB.Connection Dim res As New ADODB.Recordset Dim moveX As Long '动态添加控件时控件移到X点 Dim moveY As Long '动态添加控件时控件移到Y点 Const mWidth = 1500 Const ConCount = 4 '表中查询条件的数量 阅读详情

 1。用js文件写好时间控件的代码。

2。在.net后置文件中加入

               <script language="javascript" src="../../js/Calendar.js" type="text/javascript"></script>

3。在页面上加入

             <input onselectstart="return false;" onkeypress="return false" id="txtTestDate" onfocus="setday(this)"
                                                     type="text" name="Text1" runat="server" style="width: 150px" class="FlatInput">

 

用js文件写好时间控件的代码如下:

       //  主调用函数是 setday(this,[object])和setday(this),[object]是控件输出的控件名,举两个例子:
  //  一、<input name=txt><input type=button value=setday onclick=""setday(this,document.all.txt)"">
  //  二、<input onfocus=""setday(this)"">
  //  本日历的年份限制是(1000 - 9999)
  //  按ESC键关闭该控件
  //  在年和月的显示地方点击时会分别出年与月的下拉框
  //  控件外任意点击一点即可关闭该控件

  Ver 2.0
  修改日期:2002-12-13
  修改内容:
  1.*全新修改使用iframe作为日历的载体,不再被select和flash等控件挡住。
  2.修正了移植到iframe后移动日历控件的问题。

  Ver 1.5
  修改日期:2002-12-4
  修改内容:
  1.选中的日期显示为凹下去的样式
  2.修改了关闭层的方法,使得失去焦点的时候能够关闭日历。
  3.修改按键处理,使得Tab切换焦点的时候可以关闭控件
  4.*可以自定义日历是否可以拖动

  Ver 1.4
  修改日期:2002-12-3
  修改内容:
  1.修正选中年/月份下拉框后按Esc键导致年/月份不显示的问题
  2.修正使用下拉框选择月份造成的日期错误(字符串转化为数字的问题)
  3.*外观样式的改进,使得控件从丑小鸭变成了美丽的天鹅,从灰姑娘变成了高贵的公主,从……(读者可以自己进行恰当的

比喻)
  4.再次增大年/月份的点击空间,并对下拉框的位置稍作调整

  注:*号表示比较关键的改动

  说明:
  1.受到iframe的限制,如果拖动出日历窗口,则日历会停止移动。
  */
 

  //==================================================== 参数设定部分

=======================================================
  var bMoveable=true;  //设置日历是否可以拖动
  var _VersionInfo="Version:2.0&#13;2.0作者:walkingpoison&#13;1.0作者: F.R.Huang(meizz)&#13;MAIL:

meizz@hzcnc.com" //版本信息

  //==================================================== WEB 页面显示部分

=====================================================
  
  //2007-4-1 唐和江修改,去掉了讨厌的Scrollbar,加长了时间年的选择范围
  
  var strFrame;  //存放日历层的HTML代码
  document.writeln('<iframe bgcolor="#000000" id=meizzDateLayer Author=wayx frameborder=0 scrolling="no" 

width="195"; height="255"; style="position: absolute; z-index: 9998; display: none" ></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="" border="0"><tr><td>';
        // 控件边框颜色
        strFrame+='<table border=1 cellspacing=1 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+='        onclick="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+='onmouseover="style.backgroundColor=/'#D7E1F0/'" onmouseout="style.backgroundColor=/'white/'" ';
  strFrame+='onclick="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

onmouseover="style.backgroundColor=/'#D7E1F0/'" ';
  strFrame+=' onmouseout="style.backgroundColor=/'white/'" onclick="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+='         onclick="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?

'onmousedown="DragStart()" onmouseup="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

onclick=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

onclick="parent.meizzDayClick(this.innerText,0)"></td>';
  strFrame+='        <td colspan=3 align=right Author=meizz><span onclick=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 年" onclick="parent.meizzPrevY()" ';
  strFrame+='             onfocus="this.blur()" style="font-size: 12px; height: 20px"><input Author=meizz

class=button title="向前翻 1 月" type=button ';
  strFrame+='             value="< " style="cursor:hand" onclick="parent.meizzPrevM()" onfocus="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 onclick="parent.meizzToday()" ';
  strFrame+='             onfocus="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" onclick="parent.meizzNextM()" ';
  strFrame+='             onfocus="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

年" onclick="parent.meizzNextY()"';
  strFrame+='             onfocus="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 - 30;//已改过,以前为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 += "onblur='document.all.tmpSelectYearLayer.style.display=/"none/"' "
   s += "onchange='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 + 56; i++)//以前为26,已改为56
  {
   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 += "onblur='document.all.tmpSelectMonthLayer.style.display=/"none/"' "
   s += "onchange='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("您所要输出的控件对象并不存在!");}
  }

 

在 Matlab 的 GUI 中使用 UI 控件实现简易时钟 在 Matlab 中创建图形用户界面(GUI)可以为用户提供直观的交互体验。通过利用 UI 控件,我们能够设计出一个简易的时钟,实时显示当前时间。这不仅是一个有趣的小项目,也能帮助我们更好地理解 Matlab 的 GUI 编程和时间处理机制。 阅读详情

相关推荐

文本框时间日期插件

日期文本框中使用插件实现选日期的功能,使界面和用户体验更加人性化!

Java关于时间日期的Date类和Calendar类概述

1.System.currentTimeMillis()方法 可以获取当前时间距离1970年01月01日00时00分00秒的秒数,如果程序运行在北京时区,则获取的数据是当前时间距离1970年01月01日08时00分00秒的秒数. 例如 System.out.println(System.currentTimeMillis()); 2.Date类 利用...

weixin_30713953的博客 182

js时间控件--在文本框添加时间弹出控件

js时间控件--可以在文本框添加时间弹出控件

超级简单好用的JS日期控件

用的时候先在插入 SCRIPT src="Images/setday.js">SCRIPT>然后输入框INPUT id="starttime2" onclick="setday(this)" size="12" name="starttime" runat="server">setday.js代码如下: SCRIPT>document.writeln(

公主笔记(快乐的蓝精灵) 5098

两种方法实现日期时间加入文本框的JS控件

两种方法:把晶期入在文本框中,日期时间JS控件

abaqus 根据坐标施加载荷- Analytical Field 载荷映射

在一些类型的分析中,需要将按位置分布的载荷施加到结构上,比如流体分析导出了结构的气动载荷、或者温度载荷,需要将压强分布、温度分布载荷施加到固体上。这种分析可以使用abaqus中的Analytical Field实现。 1 例子 1.1 结构 一个100*100mm的面,面的载荷分布函数为p=(x2+y2)0.5/((20.5)*100) MPa,即(0, 0)的压强为0,(100, 100)的压强为1。 1.2 载荷 载荷函数:p=(x^2+y^2)^0.5/((2^0.5)*100) in exce.

shengyutou的博客 2万+

【C#】datetimepicker初始为空值的方法

方法一: 在窗口初始化函数中添加: dateTimePickerEnd.Format = DateTimePickerFormat.Custom; dateTimePickerEnd.CustomFormat = " "; 在日期改变事件里写: private void dateTimePickerEnd_ValueChanged(object sender, E...

weixin_33843947的博客 1892

从硬件拆解到图像生成:一次搞懂MRI设备(主磁体、梯度线圈、射频系统)是如何协同工作的

本文深入解析MRI设备的三大核心系统——主磁体、梯度线圈和射频系统如何协同工作,实现从量子现象到诊断图像的转化。通过详细的技术参数和临床案例,揭示磁共振成像(MRI)在医疗图像处理中的精密工程原理和最新技术突破,帮助读者全面理解这一现代医学影像技术的运作机制。

weixin_33734785的博客 549

springboot使用富文本编辑器,时间日期选择插件进行数据库存储数据,在取出回显(过滤html标签)

数据库 entity层 dao层 service层 controller层 html页面

重生之我不会写代码 1041

HOPE:基于强化学习的混合策略路径规划器,适用于多样化停车场景

本文提出了一种混合策略路径规划器(HOPE),用于解决自动停车中的路径规划问题。HOPE结合了强化学习(RL)和Reeds-Shepp(RS)曲线,通过动作掩码机制引导RL智能体的探索,并利用Transformer融合环境感知信息与掩码。该方法在多样且复杂的停车场景中实现了超过97%的成功率,并通过真实实验验证了其泛化能力。此外,本文还提出了基于空间与障碍物分布的停车场景难度分级标准,进一步提升了训练与评估的效率。实验结果表明,HOPE在规划成功率和跨场景泛化能力上均优于传统的基于规则算法和朴素强化学习方法

weixin_42783201的博客 1466

Zigbee智能开关和单火取电技术

ZigBee智能开关(单火线)是在ZigBee协议基础上开发由单火线供电的开关,它可以控制各种类型负载的开关,如LED灯,白炽灯,荧光灯和钨丝灯等。配合相应的主机用户可以使用手机远程控制它,进而达到控制灯光开关的目的。它具有自组网功能,使用简单方便,给你的居家生活带来无线享受。可应用于家庭,办公,医院和酒店等场合。

danhuoxian的博客 1万+

AI如何重构品牌叙事:从情感共鸣到信任量化

在数字化传播时代,品牌叙事正从单向输出进化为智能化的情感工程。通过自然语言处理(NLP)和多模态分析技术,AI能够解构用户评价、社交媒体等非结构化数据,识别真正引发共鸣的叙事元素。核心在于建立可量化的信任评估体系,将抽象的价值观投射转化为具体的数据指标,例如通过情感分析模型检测内容一致性,或利用区块链确保数据透明度。这种技术融合不仅解决了传统品牌传播的同质化困境,更在快消品年轻化改造、B2B技术通俗化等场景展现出巨大价值。当前前沿实践已证明,结合动态叙事生成和持续学习系统的AI解决方案,能使品牌搜索量提升2

weixin_33681778的博客 411

FPGA新手必看:Create HDL Wrapper和Generating Output Products到底该先用哪个?

本文深入解析了FPGA设计中Create HDL Wrapper与Generating Output Products的正确使用顺序,帮助新手避免常见错误。详细介绍了两者的功能差异、执行顺序的底层逻辑以及工程管理的最佳实践,特别适合使用Vivado进行FPGA开发的初学者。

xk7n92h3p5m的博客 1065

WPF自定义日期时间控件

WPF自定义时间控件一、需求分析二、功能实现 一、需求分析 在工作中遇到的项目中,大部分软件是处于全屏运行状态,这时候就需要在软件的界面上加上日期时间那些,方便用户产看当前时间。 二、功能实现 这里的实现方法也很简单,大致就是自定义一个控件,然后加上文本框显示时间信息,然后后台通过一个定时器,定时去获取系统的时间,然在显示在文本框上。 1、创建自定义控件 给工程新建一个用户控件,然后添加上文本框,这里我添加了三个,分别对应年月日,星期,时间 <UserControl x:Class="ButtonDe

weixin_42846398的博客 2036

python抓取美团外卖的数据(商家、评分、评论)

本文详细介绍了如何使用Selenium和抓取美团外卖的商家、评分和评论数据。我们从基础的爬虫原理入手,分析了美团外卖的网页结构,提出了应对反爬虫机制的策略,并给出了详细的代码实现。通过使用Selenium,我们能够绕过动态加载内容的限制,直接抓取网页中的商家信息和评论。结合多线程和代理池等技术,我们可以进一步提高爬虫效率,并避免IP被封禁。未来,随着爬虫技术的发展,我们可以进一步探索深度抓取、数据清洗和数据分析等高级应用,以实现更智能的网页数据抓取。

2201_76125261的博客 2700

088、多摄像头跨镜目标追踪 ID 频繁切换?ReID 特征 + 轨迹关联 + 时间约束方案

文章摘要:本文针对多摄像头跨镜目标追踪中ID频繁切换的问题,提出了一种结合ReID特征、轨迹关联和时间约束的综合解决方案。作者分析了ID切换的三个主要原因:ReID特征不稳定、轨迹关联依赖最近邻匹配以及忽略时间约束。通过改进ReID特征提取(多层特征融合)、引入轨迹预测(卡尔曼滤波)和添加时间窗口约束,成功将ID切换率从35%降至3%以下。文章详细分享了实现细节和踩坑经验,为跨摄像头目标追踪提供了实用优化思路。

ai技术增长的博客 169

C# 自定义控件,日期时间选择输入插件

C# 自定义控件,日期时间选择输入插件

暂无内容 2万+

C#图像处理:OpenCVSharp实现简单人脸识别

人脸识别是计算机视觉领域中的一个重要研究方向,它可以通过分析和比对人脸图像,实现识别和验证的功能。希望通过这篇文章的学习,你对OpenCVSharp和人脸识别有了初步的了解,并能够运用这些知识进行自己的项目开发。当我们运行程序时,它会加载人脸识别模型并读取待识别的图像,然后进行人脸检测并在图像上标记出检测到的人脸位置。当然,这只是一个入门级的示例,实际的人脸识别系统还需要更加复杂的算法和大量的训练数据来提高准确性和鲁棒性。最后,我们遍历检测到的人脸,并在原始图像上绘制矩形框,标记出检测到的人脸位置。

WELL_CODER的博客 1129

java文本框中显示日期_java怎么在一个文本框中不断显示系统当前时间

import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Calendar;import javax.swing.JFrame;import javax.swing.JTextField;import javax.swing...

weixin_29375125的博客 724

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C#winform上位机开发学习笔记13-串口助手显示系统时间功能添加

技术笔记

weixin_49048045的博客 684

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Birt时间参数添加My97日历控件

首先,思路: 引用My97.js然后为时间参数的textbox添加onclick事件 1、将My97添加到项目中的webcontent目录下(如图:) 2、添加My97引用 在项目路径下找到该文件\webcontent\birt\pages\layout\FramesetFragment.jsp 添加My97引用(在Head中添加,就是有一堆js引用的位置,不要考虑路径的问题,只

ding的专栏 2575

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

如何修改控件边框的样式_Axure 进阶 | 制作携程网酒店“入住日期”与“退房日期”时间控件...

本次教程学习制作时间控件选择,根据选择的日期,在输入框中显示所选择的日期。制作内容包括携程网的酒店“入住日期”时间控件与“退房日期”时间控件。部件使用:动态面板、图片、矩形、文本框(单行)、单行文本、垂直线;交互事件:鼠标点击时、获得焦点时;动作:设置面板状态为指定状态、设置部件显示/隐藏、设置文本;时间控件交互描述:常用于选择日期。如酒店入住与退房日期选择,旅游出发日期,日程安排等场...

weixin_39839968的博客 315

extjs控件只读、,extjs多行只读文本框

extjs 动态只读,,extjs动态时间,extjs多行只读文本框在此不做过多停留 9.把 Extjs 的 ComboBox 样式应用到 sele...extjs 目录 序言 Ext 发展史 什么是 EXT ExtJs UI Engine 简介 Ajax 主流框架与 ExtJS Ext 学习及应用经验小结 编辑本段 序言 ExtJS 是一种主要用于创建前端......ExtJs TextFiel...

weixin_42117032的博客 887

[QT]零基础手把手教你做一个简单电子钟界面

目录前提软件环境创建项目创建LCDnumber控件定时器LCDnumber控件修改初步完成优化项目最终效果 前提 学了3天的QT,今天项目是通过QT中的LCDnumer控件显示系统时间,再利用定时器的定时效果更新时间控件,从而做成一个电子钟界面。如果有学过C++的同学应该会比较容易上手,没有学过也可以跟着一步一步做出来… 软件环境 本次使用的是QT Creator 3.4.2版本 创建项目 1....

zhong_senvi的博客 1683

大型商贸系统(进货管理)技术解析(二)自营进仓单录入

大型商贸系统(进货管理)技术解析(二)自营进仓单录入 功能介绍:      自营进仓单录入为进货店的客户进行开单,是根据商品订单来进仓。对于商品进仓,系统提供了2种方式:(1)实现一次性全部将需求的商品信息进行进货。实现一次进货需要选择相应的订货单,录入到相应的进仓单,根据需要进行修改后经过审核来实现一次性进货。(2)实现分批进货。在选择相应的订单或者合同后,新增相应的进仓单,根据需要进行

wying88的博客 2141

access查找出生日期年份_Access:按时间段查询信息

用access管理人员信息,对时间段查询要求比较多,月度报表、季度报表,定制信息要求,都需要用到时间段查询,经过摸索和整理,思路如下,以入职人员信息查询为例。1、新建一个查询表,,选取需要的信息;2、创建窗体,命名为,【设计视图】状态下:2.1 添加两个label(文本框),分别命名为 开始时间 和 结束时间,将label的格式改为yyyy-m-d(一经修改,在窗体视图下,光标放置在label框...

weixin_29600985的博客 6978
上一篇: 如何获取IP
下一篇: 从屏幕中输入字符串的方法
wangjun_pfc
博客等级 码龄20年 254粉丝 299原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值