电子日历

来源:互联网 发布:游戏编程入门先学什么 编辑:程序博客网 时间:2024/04/27 17:32

<HTML>
<HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>

</HEAD>

<SCRIPT language=JavaScript>

function leap( year)
{
    if(((year%100)==0)||((year%4)==0))
    {
        return 0;  //0为闰年 
    }
    else
    {
        return 1; //1为非闰年
    }
}

function leapSum(yearFrom, yearTo)
{
 var from = yearFrom;
 var to = yearTo;
 
 if (yearTo < yearFrom)
 {
  var from = yearTo;
  var to = yearFrom;
 }
 
 var sum = 0;
 var i;
 for (i = from; i < to; i++)
 {
  if (0 == leap(i))
  {
   sum++;
  }
 }
 
 if (yearTo > yearFrom)
 {
  sum = 0 - sum;
 }
 
 return sum;
}

function weekAfterDays(days, weekStartno)
{
 var weekno = (weekStartno + days) % 7;
 
 //weekno = (weekno == 0)?7:weekno;
 weekno = (weekno < 0)?7 + weekno:weekno;
 
 return weekno;
}

function weekOfJanFirst(year)    
{    
 var leapSumFrom1994 = leapSum(year, 1994);
 
 var daysFrom1994 = (year - 1994) * 365 + leapSumFrom1994;
 
 var weekno = weekAfterDays(daysFrom1994, 6);
 
 return weekno;
}

function monthArr(year)
{
 if (0 ==leap(year))
 {
  return [31,29,31,30,31,30,31,31,30,31,30,31];
 }
 else    
 {
  return [31,28,31,30,31,30,31,31,30,31,30,31];
 }
}

function DaysOfYear(year, month)
{
 var months = monthArr(year);
 var sum = 0;
 
 var i;
 for (i = 0; i < month - 1; i++)
 {
  sum = sum + months[i];
 }
 return sum;
}


function weekOfFirst(year, month)
{
 
 var firstOfweekno = weekOfJanFirst(year);
 
 var days = DaysOfYear(year, month);
 
 var weekno = weekAfterDays(days, firstOfweekno);
 
 return weekno;
}

function weekNo(year, month, day)
{
 
 var firstOfweekno = weekOfFirst(year, month); 
 
 var weekno = weekAfterDays(day - 1, firstOfweekno);
 
 return weekno;
}

function calendaTable()
{
 document.write('<TABLE border=0 width=300>');

 document.write('<TR><TD bgColor=#00abab colSpan=7><FONT color=#ffffff size=2 style="FONT-SIZE: 9pt">阳历');

 //Add selector
 document.write('<SELECT id="SY" onchange=changeCld() style="FONT-SIZE: 9pt">');

 for(i=1900;i<2050;i++)
 {
  document.write('<option>'+i) ;
 }

 document.write('</SELECT>年');

 document.write('<SELECT id="SM" onchange=changeCld() style="FONT-SIZE: 9pt">');

 for(i=1;i<13;i++)
 {
  document.write('<option>'+i) ;
 }

 document.write('</SELECT>月</FONT></TD></TR>');
 //End Adding selector

 //Initialize selector
 var today = new Date();
    var SY = document.getElementById("SY");
 var SM = document.getElementById("SM"); 
 SY.selectedIndex = today.getYear() - 1900; // This part need to differ IE from FireFox. FireFox need not minus 1900.
 SM.selectedIndex = today.getMonth();
 //End Initializing selector

 //Add calenda head
 document.write('<TR align=middle bgColor=#e0e0e0> ');
 document.write('<TD width=54 style="FONT-SIZE: 9pt">日</TD>');
 document.write('<TD width=54 style="FONT-SIZE: 9pt">一</TD>');
 document.write('<TD width=54 style="FONT-SIZE: 9pt">二</TD>');
 document.write('<TD width=54 style="FONT-SIZE: 9pt">三</TD>');
 document.write('<TD width=54 style="FONT-SIZE: 9pt">四</TD>');
 document.write('<TD width=54 style="FONT-SIZE: 9pt">五</TD>');
 document.write('<TD width=54 style="FONT-SIZE: 9pt">六</TD>');
 document.write('</TR>');
 //End Adding calenda head
 
 //Generate table content cell
 var i=0;
 for (i=0; i<6; i++)
 {
  document.write('<tr align=center>');
  var j;
  for (j=0; j<7; j++)
  {
   var gNum = i*7+j;
   var idStr = "id" + gNum;

   document.write('<td id=');
   document.write(idStr);
   document.write(' style="FONT-SIZE: 9pt"> </td>');

   var col = document.getElementById(idStr);
   col.appendChild(document.createTextNode(''));
  }
  document.write('</tr>');
 }
 //End Generating table content cell

 document.write('</TABLE>');
}

function calenda(year, month, today)
{
 var day;
 var bstart;
 var months = monthArr(year);

 var i;
 for(i=0;i<6;i++)
 {
  var j;
  for(j=0;j<7;j++)
  {
   var gNum = i*7+j;
   var idStr = "id" + gNum;
   var col = document.getElementById(idStr);

   if ((0 == i) && (j == weekOfFirst(year, month)))
   {
    day = 1;
    bstart = 1;
   }
   if (1 == bstart)
   {
    col.firstChild.data=day;
    col.style.color="black";

    if ((0==j)||(6==j))
    {
     col.style.color="green";
    }

    if (today == day)
    {
     col.style.color="red";
    }

    day++;
    if (day > months[month -1])
    {
     bstart = 0;
    }
   }
   else
   {
    col.firstChild.data=' ';
   }
  }

 }
}

function changeCld()
{
 var y,m;

 var SY = document.getElementById("SY");
 var SM = document.getElementById("SM"); 
 y=SY.selectedIndex + 1900;
 m=SM.selectedIndex + 1; // If fireFox no need to add 1;
 
 var today = new Date();
 
 calenda(y, m, today.getDate());
}
</SCRIPT>


<BODY>


<SCRIPT language=JavaScript>
<!--

calendaTable();

var today = new Date();

calenda(today.getYear(), today.getMonth() + 1, today.getDate());


//--></SCRIPT>

</TBODY></TABLE>


</BODY>
</HTML> 

原创粉丝点击