附件提供了完整的演示文档。目前只支持IE。
var CALT_MONTH_LENGTH = [31,28,31,30,31,30,31,31,30,31,30,31]; //平年的月份天数
var CALT_LEAP_MONTH_LENGTH = [31,29,31,30,31,30,31,31,30,31,30,31]; //闰年的月份天数
/**
* 判断某年是否是闰年
* @param $year
*/
function isLeapYear($year) {
return (($year % 4 == 0) && (($year % 100 != 0) || ($year % 400 == 0)));
}
/**
* 获取某年某月的天数
* @param $month
* @param $year
*/
function monthLength($month, $year) {
return isLeapYear($year) ? CALT_LEAP_MONTH_LENGTH[$month] : CALT_MONTH_LENGTH[$month];
}
/**
* 根据给定的年份和月份绘制日历
* @param year 给定的年份
* @param month 给定的月份
* @return 日历
*/
function paintCalendar(year,month){
var time=new Date();
time.setYear(year);
time.setMonth(month-1);
var monthLen=monthLength(month-1,year);
var count=0;
var sb=[];
sb.push("<tr>");
for(var i=1;i<=monthLen;i++){
time.setDate(i);
var week=time.getDay();
if(0==week && i==1){ //1号恰好是星期日
sb.push(createTableTD(6));
sb.push("<td>");
sb.push(i);
sb.push("</td>");
count=7;
}else{
if(i!=1){
sb.push("<td>");
sb.push(i);
sb.push("</td>");
count++;
}else{
sb.push(createTableTD(week-1));
sb.push("<td>");
sb.push(i);
sb.push("</td>");
count += week;
}
}
if(count==7){
count=0;
sb.push("</tr>");
if(i!=monthLen){
sb.push("<tr>");
}
}
if(i==monthLen){
sb.push(createTableTD(7-count));
sb.push("</tr>");
}
}
return sb.join("");
}
function createTableTD(lows){
var tmp=[];
for(var i=0;i<lows;i++){
tmp.push("<td></td>");
}
return tmp.join("");
}
JavaScript日历绘制
1155

被折叠的 条评论
为什么被折叠?



