//调用方法:onclick="return Calendar('输入框ID');" var MonthDNum=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31); var MonthText=new Array("","一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"); var Calendar_obj,Calendar_obj2; //var WriteHead=1; document.write('') /*头部信息CSS及JS函数*/ var HeadMsg=''+ ''+ 'var mdown,sy,ey,sm,em,HideSelect=1,CurrentSelect,year,month,day;function Scroll(str,key)'+ '{var Html="",s,e,obj,d;'+ 'if(key=="Y"){s=sy;e=ey;obj="SelectYearItem";d="年";}if(key=="M"){s=sm;e=em;obj="SelectMonthItem";d="";}'+ 'if(str=="Up"){s--;e--;}if(str=="Next"){s++;e++;}'+ 'if(key=="Y"){sy=s;ey=e;}if(key=="M"){if(s<1)s=1;if(s>6)s=6;if(e<7)e=7;if(e>12)e=12;sm=s;em=e;}'+ 'for(i=s;i<=e;i++){Html+=\'\'+parent.MonthText[i]:i+\',\'+month+\',\'+day+\');">\'+i;Html+=d+"";}'+ 'document.getElementById(obj).innerHTML=Html;}'+ 'function KeyDown(str){if(str==38){Scroll("Up",CurrentSelect);}if(str==40){Scroll("Next",CurrentSelect);}}'+ 'function ShowSelect(str,str2){HideSelect=0;HSelect();Scroll(\'\',str2);document.getElementById(str).style.display="block";CurrentSelect=str2}'+ 'function HSelect(){document.getElementById("SelectYear").style.display="none";document.getElementById("SelectMonth").style.display="none";}'+ 'function Calendar_GetDate(y,m,d)'+ '{var objEvent=window.event||arguments.callee.caller.arguments[0];'+ 'var srcElement=objEvent.srcElement;'+ 'if(!srcElement){srcElement=objEvent.target;}'+ 'if(srcElement.tagName=="A"){parent.Calendar_GetDate(y,m,srcElement.innerHTML);}}'+ 'document.onclick=function(){if(HideSelect){HSelect();}HideSelect=1;}'+ '
5
'+ '
6
'+ '
5
'+ '
6
'; function Calendar_Show(year,month,day) { var content; var date=new Date(); var DayNum=(IsLeapYear(year) && month==2)?MonthDNum[month]+1:MonthDNum[month]; var date2=new Date(year,month-1,1) var start=date2.getDay(); var date2=null; var Trn=Math.ceil((DayNum+start)/7); var PrNum=1; content='year='+year+',month='+month+',day='+day+',sy=year-3;ey=year+3;'+ 'sm=(month-3<1)?1:(+month-3>6)?6:month-3;'+ 'em=(month+3<7)?7:(month+3>12)?12:month+3;
'+ '
'+ '
'+ '
'; //层定位 var Calendar=document.getElementById('divCalendar'); Calendar.style.height=66+21*Trn+'px'; //框架高度 divCalendar.document.open() divCalendar.document.write(HeadMsg+content); divCalendar.document.close() var p=Calendar_obj; var eT=0,eL=0,eH=0,dH=0,sT=0,eP=p while(p && p.tagName!="BODY"){ eT+=p.offsetTop; //距窗口顶部距离 eL+=p.offsetLeft; //距窗口左边距离 p=p.offsetParent;} var eH=eP.offsetHeight; //输入框高度 var eW=eP.offsetWidth; //输入框宽度 var dH=Calendar.style.pixelHeight; //框架高度 Calendar.style.top=(eT+dH>document.body.scrollHeight && eT-dH>=0)?eT-dH+'px':eT+eH+'px'; Calendar.style.left=(eL+206>document.body.scrollWidth && eL-206+eW>=0)?eL-206+eW+'px':eL+'px'; setTimeout("document.getElementById('divCalendar').style.display=''",1); } /*是否润年*/ function IsLeapYear(y){ if(0==y%4 && ((y%100!=0)||(y%400==0))){return true;} else{return false;} } function Calendar_Modif(y,m,d) { if(m<1){m=12;y=y-1;} if(m>12){m=1;y=y+1;} var num=(IsLeapYear(y) && m==2)?MonthDNum[m]+1:MonthDNum[m]; if(d>num){d=num;} Calendar_Show(y,m,d) } function Calendar(obj,obj2) { var p=Calendar_obj=document.getElementById(obj); Calendar_obj2=document.getElementById(obj2); var re=/\d{4}-\d{1,2}-\d{1,2}/; var arr,Sdate; arr=re.exec(Calendar_obj.value); if(arr!=null){Sdate=Calendar_obj.value;} else{var mydate=new Date(); Sdate=mydate.getFullYear()+'-'+(mydate.getMonth()+1)+'-'+mydate.getDate();} Sdate=Sdate.split("-"); Calendar_Show(parseInt(Sdate[0]),parseInt(Sdate[1]),parseInt(Sdate[2])); } function Calendar_GetDate(y,m,d) { if(!Calendar_obj2||d!=0){ if(d>0){Calendar_obj.value=y+'-'+m+'-'+d;} else{ var objEvent=divCalendar.event||arguments.callee.caller.arguments[0]; var srcElement=objEvent.srcElement; if(!srcElement){srcElement=objEvent.target;} Calendar_obj.value=y+'-'+m+'-'+srcElement.innerHTML; } } else{ if(IsLeapYear(y) && m==2){num=MonthDNum[m]+1;} else{num=MonthDNum[m];} Calendar_obj.value=y+'-'+m+'-1'; Calendar_obj2.value=y+'-'+m+'-'+num; } Calendar_hide();} function Calendar_hide() {document.getElementById("divCalendar").style.display="none";} document.onclick=Calendar_hide;