相当于delphi的日历控件[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 lxx8402 的 blog

file://calendar.js
<!--start-->
var yearstr,monthstr,daystr,nowdaystr;
var weekstr,week,week_one;
var weekarr = new array("星期日", "星期一", "星期二", "星期三","星期四", "星期五", "星期六");
var dt = new date();
var showtype;
var calex = 0;
var caley = 0;

yearstr  = dt.getyear();
monthstr = dt.getmonth() + 1;
nowdaystr = daystr   = dt.getdate();
week     = dt.getday();
weekstr  = weekarr[week];
document.write("<div id=idcalendar style='position:absolute;top:100px;left:100px;width:260px;border: #000000 1px solid;background-color: #ffffff;display:none'></div>");

function initcalendar(){
 var calehtml="";
 calehtml += "<table border=0 cellspacing=0 cellpadding=1 width='100%'>";
 calehtml += "<tr bgcolor=#33246c><td><button onclick='prevmonth()' class=btn><span lang=en-us style='font-family:arial'>&#9668;</span></button></td>";
 calehtml += "<td align=center><span style='color:white'>"+ yearstr +"年"+ monthstr +"月</span></td>"
 calehtml += "<td align=right><button onclick='nextmonth()' class=btn><span lang=en-us style='font-family:arial'>&#9658;</span></button></td></tr>";
 calehtml += "<tr><td colspan=3>";
 calehtml += "<table border=0 cellspacing=0 cellpadding=0 width='100%'><tr>";
 for(var i=0; i<weekarr.length; i++){
  calehtml += "<td>" + weekarr[i] + "</td>";
 }
 calehtml += "</tr><tr><td colspan=7><hr size=1 color=blank width='90%'></td></tr>";
 calehtml += bodycalendar();
 calehtml += "</table>";
 calehtml += "</td></tr>";
 calehtml += "<tr><td colspan=3>今天是:<font color=red>"+ dt.getyear() +"-"+ (dt.getmonth() + 1) +"-"+ dt.getdate() +"</font></td></tr>";
 calehtml += "</table>";
 return calehtml;
}

function bodycalendar(){
 var resultstr = "<tr>";
 var tempstr = "" + monthstr + "/1/" + yearstr;
 var d = new date(tempstr);
 week_one = d.getday();
 for(var i=0;i<week_one;i++){
  resultstr += "<td></td>";
 }
 var byear = yearstr/4;
 var maxday;
 switch(monthstr){
  case 1:
  case 3:
  case 5:
  case 7:
  case 8:
  case 10:
  case 12:
   maxday = 31;
   break;
  case 2:
   if(byear==0)
    maxday = 28;
   else
    maxday = 29;
   break;
  default:
   maxday = 30;
   break;
 }
 var k;
 var bday;
 for(var i=0;i<maxday;i++){

  if((i+1) == daystr)
   bday = "border: #006432 1px solid;";
  file://else if((i+1) == nowdaystr)
   file://bday = "border: #ff0000 1px solid;";
  else
   bday = "border: #ffffff 1px solid;";

  brstr = i+week_one+1;
  if(brstr>=7 && brstr%7==0){

   resultstr += "<td align=right style='cursor:hand;"+ bday +"' onmouseover='tdmove()' onmouseout='tdout()' onclick='tdclick()'>"+ eval(i+1) +"</td></tr><tr>";
   k=0;
  }
  else{
   resultstr += "<td align=right style='cursor:hand;"+ bday +"' onmouseover='tdmove()' onmouseout='tdout()' onclick='tdclick()'>"+ eval(i+1) +"</td>";
   k+=1;
  }
 }
 for(var i=0;i<7-k;i++){
  resultstr += "<td></td>";
 }
 resultstr += "</tr>";
 return resultstr;
}

function prevmonth(){
 monthstr -= 1;
 if(monthstr == 0){
  monthstr = 12;
  yearstr -= 1;
 }

 idcalendar.innerhtml = initcalendar();
}

function nextmonth(){
 monthstr += 1;
 if(monthstr > 12){
  monthstr = 1;
  yearstr += 1;
 }
 idcalendar.innerhtml = initcalendar();
}


function tdmove(){
 var obj = window.event.srcelement;
 obj.style.setattribute("border", "#005ab5 1px solid");
}

function tdout(){
 var obj = event.srcelement;

本文关键:js,javascript,日历
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top