一起来敲代码 2021-09-14 10:04 采纳率: 80%
浏览 36
已结题

为什么“用总天数算出当月1号的星期数”这步总是不对?

<script>
    var year=prompt("请输入年份:");
    var month=prompt("请输入月份:");
    var allDay=0;

    //计算输入的年份距离1900年的天数
    for(var i=1900;i<=year;i++){
        if((i%4==0&&i%100!=0)||i%400==0){
            allDay+=366;
        }else{
            allDay+=365;
        }
    }

    //当月天数的总数
    var monthDay=0;
    for(var i=1;i<=month;i++){
        switch(i){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                monthDay=31;
                break;
            case 2:
                if((year%4==0&&year%100!=0)||year%400==0){
                    monthDay=29;
                }else{
                    monthDay=28;
                }
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                monthDay=30;
                break;
        }
    }

  //用总天数算出当月1号的星期数
    var day=allDay%7;
    console.log(day);

    //画出日期排布
    document.write("一&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>");
    for(var i=1;i<day;i++){
        document.write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
    }
    for(var i=1;i<=monthDay;i++){
        document.write(i+"&nbsp;&nbsp;&nbsp;&nbsp;");
        if((i+day)%7==0){
            document.write("<br/>");
        }
    }

为什么“用总天数算出当月1号的星期数”这步总是不对?

  • 写回答

2条回答 默认 最新

  • 峰子哥哥 2021-09-14 10:48
    关注

    获得该月1号为星期几的地方改为以下代码:

        //得出该月一号为星期几
        var day = new Date(year + '/' + month + '/' + '01').getDay();
        if (day === 0) {
            day = 7
        }
    

    另外你还有个地方有问题
    循环里 判断换行的位置改为:

    if ((i - 1 + day) % 7 == 0)
    

    如果能帮到你,望【采纳】谢啦

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月22日
  • 已采纳回答 9月14日
  • 创建了问题 9月14日

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?