<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>