js做的日历

来源:互联网 发布:淘宝一口价 编辑:程序博客网 时间:2024/06/10 19:48

<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 8</title>
<script language="javascript">
function calendar(month,year){
  var today;
  var len = calendar.arguments.length;
  if(len == 2){
  this.month = calendar.arguments[0];
  this.year = calendar.arguments[1];
  }
  else{
  today = new Date();
  this.month = today.getMonth();
  this.year = today.getYear();
  }
  this.displayM = displayMonth;
  this.displayW = displayWeek;
  this.displayD = displayDay;
  this.displayY = displayYear;
  this.sele1 = select1;
  this.sele2 = month1;
  }
function displayYear(year){
var ttt;
ttt=document.getElementById("year");
ttt.innerText=year;
}
function displayMonth(month){

 var months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");

  var ttt;
  var nnn;
 
 ttt=document.getElementById("month");
  ttt.innerText=months[month];

  }
 function displayWeek(month,year)
 {
   var days = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
   var i;
   var tablenew;
   var trnew;
   tablenew = document.getElementById("table1");
  
   trnew = tablenew.insertRow(0);
   for(i=0;i<7;i++){
       tdnew=trnew.insertCell(i);
       tdnew.innerText=days[i];
       }
  }
 function displayDay(month,year){
   var days;
   var day;
   var d;
   var todayw;
   var table1;
   var rows;
   var cells;
   var i,k,crows,c;
   rows=1
  // alert(month);
   table1 = document.getElementById("table1");
   d = new Date(year,month,1);
   todayw = d.getDay();
   //alert(month);
  // alert(todayw);
    if(month==0){
       days=31;
       }
    
   switch (month){
     case "0": days=31;
              break;

     case "1": days=runnian(year);
              break;
     case "2": days=31;
              break;
     case "3": days=30;
              break;
     case "4": days=31;
              break;
     case "5": days=30;
              break;
     case "6": days=31;
              break;
     case "7": days=31;
              break;
     case "8": days=30;
              break;
     case "9": days=31;
              break;
     case "10": days=30;
              break;
     case "11": days=31;
              break;
    }
   // alert(days);
    if(table1.rows.length>=5){
      k=table1.rows.length;
      k=k-2;
      k=k*7;
      for(i=0;i<k;i++){
       c=i%7;
       //alert(c);
       table1.rows[rows].cells[c].innerText="";
       t=i+1;
       c=t%7;
       if(c==0){
         rows=rows+1;
         }
        }
      for(i=0;i<table1.rows[rows].cells.length;i++){
           table1.rows[rows].cells[i].innerText="";
           }
        if((todayw+days)>(k+table1.rows[rows].cells.length)){
           // alert("ttt");
            rows=1;
            for(i=1;i<=k;i++){
               c=(todayw+i-1)%7;
              // alert(i);
               table1.rows[rows].cells[c].innerText=i;
               c=(todayw+i)%7;
               if(c==0){
                  rows=rows+1;
                  }
                }
             if(table1.rows[rows].cells.length!=6){
                for(j=0;j<table1.rows[rows].cells.length;j++){
                   
                    table1.rows[rows],cells[j].innerText=i;
                    i++;
                    }
                trnew=table1.rows[rows];   
                for(j=k+table1.rows[rows].cells.length+1;j<todayw+days;j++){
                    c=j%7;
                    tdnew=trnew.insertCell[c];
                    tdnew.innerText=j;
                    c=(j+1)%7;
                    if((c==0)&&(j!=(todayw+days))){
                        rows=rows+1;
                         }
                     }
                   }
               else{
                   rows=rows+1;
                   trnew=table1.insertRow[rows];     
                   for(j=k+table1.rows[rows].cells.length+1;j<=todayw+days;j++){
                    c=j%7;
                    tdnew=trnew.insertCell[c];
                   //alert(j);
                    tdnew.innerText=j;
                    c=(j+1)%7;
                    if((c==0)&&(j!=(todayw+days))){
                        rows=rows+1;
                         }
                     }
                   }
                }
         else{
              rows=1;
               //alert(todayw);
               //alert(days);
          
              for(i=todayw;i<todayw+days;i++){
               c=i%7;
             // alert(i);
               table1.rows[rows].cells[c].innerText=i-todayw+1;
               c=(i+1)%7;
               if(c==0){
                  rows=rows+1;
                  }
                }
             }
           }    
           
    else{
        trnew = table1.insertRow(1)
    for(i=0;i<todayw;i++){
    trnew.insertCell(i);   
    }
    cells=todayw;
    for(i=1;i<=days;i++){
     
     tdnew=trnew.insertCell(cells);
     tdnew.innerText=i;
     todayw1=todayw+i;
  // alert(todayw1);
   if(todayw1%7){
       cells++;
       }
   else{
         rows=rows+1;
       cells=0
       var trnew=table1.insertRow(rows);
      }
     }
   }
 }
 function select1(year){
    for(i=1980;i<=2050;i++){
     var oOption = document.createElement("OPTION");
     oOption.text=i;
    oOption.value=i;
    if(year==i){
     oOption.selected=true;
     }
   oSelect1 = document.getElementById("yearsel");
   oSelect1.add(oOption);
  }
  }
function month1(month){
  for(i=0;i<12;i++){
    var oOption = document.createElement("OPTION");
     oOption.text=i+1;
    oOption.value=i;
    if(month==i){
     oOption.selected=true;
     }
   oSelect1 = document.getElementById("monthsel");
   oSelect1.add(oOption);
   }
 }
 function runnian(year){
 var year1,year2;
 year1 = year%100;
 year2 = year%4;
 if(year1==0){
    if(year2==0)
      return 29;
    else
      return 28;
      }
 else{
    if(year2==0)
      return 29;
    else
      return 28;
      }
 }

 function init(){
   cal = new calendar();
   cal.displayM(cal.month);
   cal.displayW();
   cal.displayY(cal.year);
   cal.displayD(cal.month,cal.year);
   cal.sele1(cal.year);
   cal.sele2(cal.month);
  // delete(cal);
 }
 function yearchange(){
   getyear = document.getElementById("yearsel");
   getmonth = document.getElementById("monthsel");
   for(i=0;i<getyear.options.length;i++){
      if(getyear.options[i].selected==1){
         theyear = getyear.options[i].value;
        }       
    }
    for(i=0;i<getmonth.options.length;i++){
      if(getmonth.options[i].selected==1){
         themonth = getmonth.options[i].value;
        }       
    }

   cal = new calendar(themonth,theyear);
   cal.displayY(cal.year);
   cal.displayM(cal.month);
   cal.displayD(themonth,cal.year);
  }
 


</script>
</head>

<body onload="init()">
<span id=month></span><span id=year></span>
<table id=table1>

</table>
<SELECT ID="yearsel" onchange="yearchange()">

</SELECT>
<select id="monthsel" onchange="yearchange()">
</select>
</body>

</html>

原创粉丝点击