手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >无聊,写了个日历程序,欢迎拍砖
无聊,写了个日历程序,欢迎拍砖
摘要:NewDocumentbody{font:12pxArial;}a:link,a:visited,a:active{color:#000;t...

New Document body{font:12px Arial;} a:link,a:visited,a:active{color:#000;text-decoration:none;background:none;} a:hover{color:#fff;text-decoration:none;background:#000;} 一个通用的日历程序,IE6、Mozilal系列测试通过.欢迎使用 /***************** * *日历程序 *作者:marcian *主页:www.marcian.net *2007.2.10 *特点:封装,对外暴露一个方法来调用日历,最大最小年份可调,日期可用性选择.采用DOM方式创建日历对象,页面只需调用一个js文件即可。 *使用方法:创建日历对象,然后调用此对象的showCalendar()方法即可. *兼容性:IE6,Mozilla系列测试通过 *欢迎交流. *自由使用,但请保留作者信息。 *公历算法来源于网络 *******************/ /***************** *为Date对象添加定制的方法 ******************/ //获取当前时间 Date.prototype.getTheDate=function(){ return {Y:this.getFullYear(),M:this.getMonth()+1,D:this.getDate()}; } Date.prototype.beforeTheDate=function(Y,M,D){ if(Ythis.getDate())) { return true; } else { return false; } } Date.prototype.getThePreDate=function(dateObj,minYear){ var M=dateObj.M; var Y=dateObj.Y; var D=dateObj.D; M--; if(MmaxYear) { Y=maxYear; } return "{Y:"+Y+",M:"+M+",D:"+D+"}"; } /***************** *日历的构造函数 ******************/ function MarcianCalendar(calendarObjName,display,minYear,maxYear,afterNotUsed,beforeNotUsed) { /********************************************* *参数说明 *calendarObjName:创建的日历对象实例名,必须 *display:显示日历 true为显示,false为不显示.可选,默认为不显示 *minYear:最小年份,可选,默认为1900 *maxYear:最打年份,可选,默认为2900 *afterNotUsed:大于当前时间的日期不可用,可选,默认为false; *beforeNotUsed:小于当前日期的时间不可用,可选,默认为false; **********************************************/ /*属性*/ this.calendarName=calendarObjName;//创建的日历对象实例名 this.display=display?"block":"none";// this.minYear=minYear?minYear:1900;// this.maxYear=maxYear?maxYear:2900;// this.afterNotUsed=afterNotUsed?afterNotUsed:false; this.beforeNotUsed=beforeNotUsed?beforeNotUsed:false; this.calendarContainer=null;//日历容器 this.calendarMenuContainer=null;//日历菜单容器 this.calendarDateContainer=null;//日历日期容器 this.calendarWeekContainer=null;//日历星期容器 this.calendarCloseContainer=null;//关闭菜单容器 this.weekAry=["日","一","二","三","四","五","六"];//星期数组 this.date=new Date();//日期对象 this.moveObjAry=new Array();//移动对象数组 this.fillObjAry=new Array();//填充对象数组 this.id=0;//当前ID号 //获取指定页面元素的坐标 this.getObjOffset=function(obj){ var x=obj.offsetWidth; var y=0; while(obj.offsetParent) { x+=obj.offsetLeft; y+=obj.offsetTop; obj=obj.offsetParent; } return{x:x,y:y}; } //移动日历 this.moveCalendar=function(id){ var offset=this.getObjOffset(this.$(this.moveObjAry[id])); this.calendarContainer.style.cssText=this.calendarContainer.getAttribute("css")+";top:"+offset.y+"px;left:"+offset.x+"px;display:block"; this.id=id; } //填充日期 this.fillDate=function(dateStr){ var fillObj=this.$(this.fillObjAry[this.id]); if(fillObj.type=="text") { fillObj.value=dateStr; } if(this.id=0;j--) { this.calendarDateContainer.removeChild(this.calendarDateContainer.childNodes[j]); } } var W=1; var Y=dateObj.Y; var M=dateObj.M; var D=dateObj.D; var dayAry=[31,28,31,30,31,30,31,31,30,31,30,31]; var r=[0,3,3,6,1,4,6,2,5,0,3,5]; var c=6; if(Y%400==0||(Y%4==0&&Y%100!=0)) { dayAry[1]=29; } if((Y%400==0||(Y%4==0&&Y%100!=0))&&Mw?start=w:start++; div.appendChild(p); } this.calendarDateContainer.appendChild(div); } } /*设置日历控制菜单*/ this.setMenu=function(dateObj){ this.calendarMenuContainer.innerHTML="上月"+dateObj.Y+"-"+(dateObj.M>9?dateObj.M:"0"+dateObj.M)+"下月"; this.setDate(dateObj); } /*初始化*/ this.initial=function(){ this.calendarContainer=document.createElement("div"); this.calendarContainer.style.cssText="position:absolute;top:0px;left:0px;width:140px;border:1px solid #666;padding:1px;background:#fff;font:12px Arial;margin-bottom:1px;display:"+this.display+";"; this.calendarContainer.setAttribute("css",this.calendarContainer.style.cssText); this.calendarMenuContainer=document.createElement("div"); this.calendarMenuContainer.style.cssText="width:140px;height:20px;background:#aaa;color:#fff;text-align:center;padding-top:3px;"; this.calendarWeekContainer=document.createElement("div"); this.calendarWeekContainer.style.cssText="width:140px;height:20px;margin-bottom:1px;"; for(i=0;i

【无聊,写了个日历程序,欢迎拍砖】相关文章:

jquery实现动态改变div宽度和高度

javascript操作ul中li的方法

详解Angularjs filter过滤器

JavaScript中用getDate()方法返回指定日期的教程

详解JavaScript中Date.UTC()方法的使用

javascript基础知识分享之类与函数化

DEFER怎么用?

根据内容自动调整弹出窗口大小的JS解决方案

农历与西历对照

javascript实现简单的进度条

精品推荐
分类导航