admin 管理员组

文章数量: 887021


2023年12月24日发(作者:tar压缩命令)

java日历当天日期标红

练习一个日历例子,输出一个日历,显示当前日期为红色

主要的理解和掌握点是:

1、使用Date()函数。

2、根据天数计算日历的长度,主要是行,因为列是固定的,一周只有7天。

3、根据天数计算各天放置的单元格位置。

4、每月第一天的特殊处理。

5、很多时候是从索引0开始计算,例如0-11代表12个月之类。

6、一个包括12个月的天数的数组。

function is_leap(year){

return(year%100==0?res=(year%400==0?1:0):res=(year%4==01:0));

}//是否为闰年

var nstr=new Date();//当前Date资讯

var ynow=lYear();//年份

var mnow=th();//月份

var dnow=e();//今日日期

var n1str=new Date(ynow,mnow,1);//传入获取到的年月,并且日设置为1,获取当月的第一天的日期信息

var firstday=();//当月第一天星期几

var m_days=new Array(31,28+is_leap(ynow),31,30,31,

30,31,31,30,31,30,31);//各月份的总天数

//月份天数+第一天星期几除以7,获取整数行数,然后取整,得到表格所需要行数,即这个月的天数需要排多少行

var tr_str=((m_days[mnow]+firstday)/7);

//打印表格第一行(有星期标志)(表头)

("

border='1'align='center'width='220'cellspacing='0'>

");

//举例是2016年12月,有31天

for(var i=0;i

("

");//表格的行开始

for(var k=0;k<7;k++){//表格每行的单元格,每行只有7格,0-6

//单元格自然序列号,当前行号乘以7再加上当前行的空格号

idx=i*7+k;//例如第一行的第一格就是0x7+0=0

date_str=idx-firstday+1;//计算日期,例如第一行第一格就是0-当月的第一天(目前当月第一天是周四即4)+1,等于-3是一个负数,负数会显示空格(参看下面)

//控制日期的值在不同的星期里面显示,如果20号是周一的话,那么就要放在周一的列里面,如此类推

(date_str<=0||date_str>m_days[mnow])//过滤无效日期(小于等于零的、大于月总天数的)

date_str=" "//显示空格

:date_str=idx-firstday+1;

//打印日期:今天底色为红

date_str==dnow

("

")

:("

");

}

("

");//表格的行结束

}

("

align='center'>日

align='center'>二

align='center'>四

align='center'>六

align='center'bgcolor='red'>"+date_str+"

align='center'>"+date_str+"

");//表格结束


本文标签: 天数 表格 计算