一、项目介绍
通过VScode编写JS代码实现万年历小程序,即输入年份以及月份,系统打印出该月的日历表
二、项目分析
要实现万年历的效果,先要用简单的for循环判定当前输入的年份是否为闰年,即能被4整除不能被100整除和能被400整除的年份皆为闰年,则每年366天,而非闰年则每年365天,月份则按照一月、三月、五月、七月、八月、十月、腊月为31天,四月、六月、九月、十一月为30天,二月则为闰年29天,非闰年28天,这样即可判断出至输入年月间的天数,再根据 天数%7+1 即可判断出周几
三、项目演示
四、项目代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<style>
table{
margin: 20px auto;
text-align: center;
}
</style>
<script>
let year = prompt("请输入年份");
let month = prompt("请输入月份");
let day = 0;
for(let i = 1900; i < year; i++){
if((i % 4 == 0 && i % 100 != 0) || i % 400 == 0){
day += 366;
}else
{
day += 365;
}
}
for(let i = 1; i < month; i++){
if(i == 1 || i == 3 || i ==5 || i == 7 || i == 8 || i == 10 || i == 12){
day += 31;
}else if(i == 2){
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
day += 29;
}else{
day +=28;
}
}else if(i == 4 || i == 6 || i == 9 || i == 11){
day +=30;
}
}
let curdy = 0;
if(month == 1 || month == 3 || month ==5 || month == 7 || month == 8 || month == 10 || month == 12){
curdy = 31;
}else if(month == 2){
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
curdy = 29;
}else{
curdy =28;
}
}else if(month == 4 || month == 6 || month == 9 || month == 11){
curdy =30;
}
let week = (day +1) % 7;
hd = "<table border='1px' cellspacing = 0>"+
"<tr>"+
"<td>星期一</td><td>星期二</td><td>星期三</td><td>星期四</td><td>星期五</td><td>星期六</td><td>星期天</td>"
+"</tr>"+"<tr>";
if(week != 1){
for(let j = 1; j <= week -1; j++){
hd += "<td> </td>";
}
}
for(let i = 1 ;i <= curdy; i++){
if((day + i) % 7 == 0){
hd += "<td>"+i+"</td></tr>";
}else if((day + i) % 7 == 1){
hd +="<tr><td>"+i+"</td>";
}else{
hd +="<td>"+i+"</td>";
}
}
hd += "</table>";
document.write(hd);
</script>
</body>
</html>