JAVA Script实现万年历

一、项目介绍

   通过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>

  

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值