月历修改了一下别人的代码自己写的一个新的月历

本文介绍了一个使用JavaScript编写的简单月历生成器。该生成器能够根据当前日期动态生成一个包含当月所有日期的月历表格,并高亮显示当前日期。此外,还包含了星期和月份的中文名称。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>


<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
  //定义月历函数
calendar();
function calendar() {
 var today = new Date(); //创建日期对象
year = today.getYear(); //读取年份
thisDay = today.getDate(); //读取当前日

//创建每月天数数组
var monthDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
//如果是闰年,2月份的天数为29天
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) monthDays = 29;
daysOfCurrentMonth = monthDays[today.getMonth()]; //从每月天数数组中读取当月的天数
firstDay = today;//复制日期对象
firstDay.setDate(1); //设置日期对象firstDay的日为1号
startDay = firstDay.getDay(); //确定当月第一天是星期几

//定义周日和月份中文名数组
var dayNames = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
var monthNames = new Array("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月");
//创建日期对象
var newDate = new Date();

//创建表格


document.write("<TABLE BORDER='0' CELLSPACING='0' CELLPADDING='2' ALIGN='CENTER' BGCOLOR='#0080FF'><TR><TD><table border='0' cellspacing='1' cellpadding='2' bgcolor='#88FF99'>");
document.write("<TR><th colspan='7' bgcolor='#C8E3FF'>");

//显示当前日期和周日
document.writeln("<FONT STYLE='font-size:9pt; Color:#FF0000'>" + newDate.getYear() + "年" + monthNames[newDate.getMonth()] + " " + newDate.getDate() + "日 " + dayNames[newDate.getDay()] + "</FONT>");

//显示月历表头
document.writeln("</TH></TR><TR><TH BGCOLOR='#0080FF'><FONT STYLE='font-size:9pt;Color:White'>日</FONT></TH>");
document.writeln("<th bgcolor='#0080FF'><FONT STYLE='font-size:9pt;Color:White'>一</FONT></TH>");
document.writeln("<TH BGCOLOR='#0080FF'><FONT STYLE='font-size:9pt;Color:White'>二</FONT></TH>");
document.writeln("<TH BGCOLOR='#0080FF'><FONT STYLE='font-size:9pt;Color:White'>三</FONT></TH>");
document.writeln("<TH BGCOLOR='#0080FF'><FONT STYLE='font-size:9pt;Color:White'>四</FONT></TH>");
document.writeln("<TH BGCOLOR='#0080FF'><FONT STYLE='font-size:9pt;Color:White'>五</FONT></TH>");
document.writeln("<TH BGCOLOR='#0080FF'><FONT STYLE='font-size:9pt;Color:White'>六</FONT></TH>");
document.writeln("</TR>");
var datenowadd=new Date();
 
do
{
 datenowadd.setDate(datenowadd.getDate()-1);
}
while(datenowadd.getMonth()==newDate.getMonth())
datenowadd.setDate(datenowadd.getDate()+1);

var datenowadd_=new Date();

do
{
 datenowadd_.setDate(datenowadd_.getDate()+1);
}
while(datenowadd_.getMonth()==newDate.getMonth())
datenowadd_.setDate(datenowadd_.getDate()-1);
var k=1;
for(var i=0;i<5;i++)
{
 var str="<TR>"; 

 for(var j=0;j<7;j++)
 {
  if(datenowadd.getDay()>j&&i==0||daysOfCurrentMonth <k)
  {
   str+="<th bgcolor='#0080FF'><FONT STYLE='font-size:9pt;Color:White'>&nbsp;</FONT></TH>";
  }
  else if(newDate.getDate()==k)
  {//alert(daysOfCurrentMonth);
   str+="<th bgcolor='#0080FF'><FONT STYLE='font-size:9pt;Color:red'>"+k+"</FONT></TH>";
    k++;
  }
  else
  {
   str+="<th bgcolor='#0080FF'><FONT STYLE='font-size:9pt;Color:White'>"+k+"</FONT></TH>";
   k++;
  }
  
 } 
 document.writeln(str+"</tr>");
}
}

</SCRIPT>

</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值