js 日历
<SCRIPT LANGUAGE="JavaScript">
<!--
//获取当前系统时间
function 获取当前时间()
{
var 日期对象 = new Date(); //声明一个日期对象
var 小时 = 日期对象.getHours(); //获取当前时
var 分钟 = 日期对象.getMinutes();//获取当前分
var 上下午; //上午下午
//判断上下午
if (小时 >= 12)
{
小时 -= 12;
上下午 = "下午";
}
else
{
上下午 = "上午";
}
小时 = (小时 == 0)?12:小时; //判断是否为0时
//分钟数小于10则补零
if (分钟 < 10)
{
分钟 = "0" + 分钟;
}
return (小时 + ':' + 分钟 + '' + 上下午);
}
function 是否为闰年(年份)
{
if (年份%4==0) //年份能被4整除为闰年
{
return true;
}
else
{
return false;
}
}
//获取选择月对应的实际天数
function getDays(月份,年份)
{
//设定每月的实际天数(12个月中只有2月会在闰年和非闰年时天数不同)
var 天数 = new Array(12);
天数[0] = 31;
天数[1] = (是否为闰年(年份))?29:28; //2月份时闰年为29天,否则为28天
天数[2] = 31;
天数[3] = 30;
天数[4] = 31;
天数[5] = 30;
天数[6] = 31;
天数[7] = 31;
天数[8] = 30;
天数[9] = 31;
天数[10] = 30;
天数[11] = 31;
return 天数[月份];
}
//获取月名称
function 获取月份名称(月份)
{
var 月份名称 = new Array(12);
月份名称[0] = "1月";
月份名称[1] = "2月";
月份名称[2] = "3月";
月份名称[3] = "4月";
月份名称[4] = "5月";
月份名称[5] = "6月";
月份名称[6] = "7月";
月份名称[7] = "8月";
月份名称[8] = "9月";
月份名称[9] = "10月";
月份名称[10] = "11月";
月份名称[11] = "12月";
return 月份名称[月份];
}
//设置日历参数
function 设置日历()
{
var 日期对象 = new Date();
var 年份 = 日期对象.getYear(); //获取当前时间年份
var 月份 = 日期对象.getMonth(); //获取当前时间月份
var 月份名称 = 获取月份名称(月份); //获取月份名称
var 当前日 = 日期对象.getDate(); //获取当前日期中的日
var 当月第一天的星期数 = (new Date(年份,月份,1)).getDay(); //获取本月的第一天对应的星期数
var 本月天数 = getDays(月份,年份); //获取当前日期天数(也是当月对应的最后一天)
//显示日历
显示日历(当月第一天的星期数+1,本月天数,当前日,月份名称,年份);
}
//显示日历
function 显示日历(当月第一天的星期数,本月天数,当前日,月份名称,年份)
{
var 日历结构体 = "";
日历结构体 += '<TABLE border=1 cellspacing=1>';
日历结构体 += '<TH colspan=7 height=25>';
日历结构体 += 年份+'年'+月份名称;
日历结构体 += 获取当前时间();
日历结构体 += '</TH>';
var 打开单元格 = '<TD width=15 height=12>';
var 关闭单元格 = '</TD>';
var 星期数组 = new Array(7);
星期数组[0] = "日";
星期数组[1] = "一";
星期数组[2] = "二";
星期数组[3] = "三";
星期数组[4] = "四";
星期数组[5] = "五";
星期数组[6] = "六";
日历结构体 += '<TR align=center valign=center>';
for (var 变量=0;变量 < 7;++变量)
{
日历结构体 += 打开单元格 + 星期数组[变量] + 关闭单元格;
}
日历结构体 += '</TR>';
var 日 = 1; //显示日
var 单元格位置 = 1; //单元格定位
for (var 行=1;行<=Math.ceil((本月天数+当月第一天的星期数-1)/7);++行)
{
日历结构体 += '<TR align=right valign=top>';
for (var 列=1;列<=7;++列)
{
if (日>本月天数)
{
break;
}
if (单元格位置<当月第一天的星期数)
{
日历结构体 += '<TD> </TD>';
单元格位置++;
}
else
{
if (日==当前日) //如果日期为当天则用红色加粗显示
{
日历结构体 += '<TD height=20>';
日历结构体 += '<FONT color=red><B>';
日历结构体 += 日;
日历结构体 += '</B></FONT><BR>';
日历结构体 += '</TD>';
}
else
{
日历结构体 += '<TD height=20>'+日+'</TD>';
}
日++;
}
}
日历结构体 += '</TR>';
}
日历结构体 += '</TABLE>';
document.write(日历结构体);
}
设置日历();
//-->
</SCRIPT>
<!--
//获取当前系统时间
function 获取当前时间()
{
var 日期对象 = new Date(); //声明一个日期对象
var 小时 = 日期对象.getHours(); //获取当前时
var 分钟 = 日期对象.getMinutes();//获取当前分
var 上下午; //上午下午
//判断上下午
if (小时 >= 12)
{
小时 -= 12;
上下午 = "下午";
}
else
{
上下午 = "上午";
}
小时 = (小时 == 0)?12:小时; //判断是否为0时
//分钟数小于10则补零
if (分钟 < 10)
{
分钟 = "0" + 分钟;
}
return (小时 + ':' + 分钟 + '' + 上下午);
}
function 是否为闰年(年份)
{
if (年份%4==0) //年份能被4整除为闰年
{
return true;
}
else
{
return false;
}
}
//获取选择月对应的实际天数
function getDays(月份,年份)
{
//设定每月的实际天数(12个月中只有2月会在闰年和非闰年时天数不同)
var 天数 = new Array(12);
天数[0] = 31;
天数[1] = (是否为闰年(年份))?29:28; //2月份时闰年为29天,否则为28天
天数[2] = 31;
天数[3] = 30;
天数[4] = 31;
天数[5] = 30;
天数[6] = 31;
天数[7] = 31;
天数[8] = 30;
天数[9] = 31;
天数[10] = 30;
天数[11] = 31;
return 天数[月份];
}
//获取月名称
function 获取月份名称(月份)
{
var 月份名称 = new Array(12);
月份名称[0] = "1月";
月份名称[1] = "2月";
月份名称[2] = "3月";
月份名称[3] = "4月";
月份名称[4] = "5月";
月份名称[5] = "6月";
月份名称[6] = "7月";
月份名称[7] = "8月";
月份名称[8] = "9月";
月份名称[9] = "10月";
月份名称[10] = "11月";
月份名称[11] = "12月";
return 月份名称[月份];
}
//设置日历参数
function 设置日历()
{
var 日期对象 = new Date();
var 年份 = 日期对象.getYear(); //获取当前时间年份
var 月份 = 日期对象.getMonth(); //获取当前时间月份
var 月份名称 = 获取月份名称(月份); //获取月份名称
var 当前日 = 日期对象.getDate(); //获取当前日期中的日
var 当月第一天的星期数 = (new Date(年份,月份,1)).getDay(); //获取本月的第一天对应的星期数
var 本月天数 = getDays(月份,年份); //获取当前日期天数(也是当月对应的最后一天)
//显示日历
显示日历(当月第一天的星期数+1,本月天数,当前日,月份名称,年份);
}
//显示日历
function 显示日历(当月第一天的星期数,本月天数,当前日,月份名称,年份)
{
var 日历结构体 = "";
日历结构体 += '<TABLE border=1 cellspacing=1>';
日历结构体 += '<TH colspan=7 height=25>';
日历结构体 += 年份+'年'+月份名称;
日历结构体 += 获取当前时间();
日历结构体 += '</TH>';
var 打开单元格 = '<TD width=15 height=12>';
var 关闭单元格 = '</TD>';
var 星期数组 = new Array(7);
星期数组[0] = "日";
星期数组[1] = "一";
星期数组[2] = "二";
星期数组[3] = "三";
星期数组[4] = "四";
星期数组[5] = "五";
星期数组[6] = "六";
日历结构体 += '<TR align=center valign=center>';
for (var 变量=0;变量 < 7;++变量)
{
日历结构体 += 打开单元格 + 星期数组[变量] + 关闭单元格;
}
日历结构体 += '</TR>';
var 日 = 1; //显示日
var 单元格位置 = 1; //单元格定位
for (var 行=1;行<=Math.ceil((本月天数+当月第一天的星期数-1)/7);++行)
{
日历结构体 += '<TR align=right valign=top>';
for (var 列=1;列<=7;++列)
{
if (日>本月天数)
{
break;
}
if (单元格位置<当月第一天的星期数)
{
日历结构体 += '<TD> </TD>';
单元格位置++;
}
else
{
if (日==当前日) //如果日期为当天则用红色加粗显示
{
日历结构体 += '<TD height=20>';
日历结构体 += '<FONT color=red><B>';
日历结构体 += 日;
日历结构体 += '</B></FONT><BR>';
日历结构体 += '</TD>';
}
else
{
日历结构体 += '<TD height=20>'+日+'</TD>';
}
日++;
}
}
日历结构体 += '</TR>';
}
日历结构体 += '</TABLE>';
document.write(日历结构体);
}
设置日历();
//-->
</SCRIPT>