用户在弹出框输入本月日期,返回给用户是星期几。

假设这个月1号是星期一,提示用户输入本月的日期(即1日 - 31日)

        ,返回用户输入日期是星期几(中)

        !如果你给我的日期不正确 我要提示你不正确,在重新询问你的日期 直到正确为止

        prompt()  用输入的数字  1-30

while (true) {
            // 进入一个无限循环,循环体内部的代码会一直执行,直到遇到break语句
            var day = prompt("请输入日期") // 弹出一个对话框,提示用户输入日期,并将输入的值赋给变量day

            if (day <= 0 || day > 31 || isNaN(day)) { // 检查输入的日期是否在1到31之间,或者是否为数字
                alert("日期输入不正确") // 如果输入不正确,弹出警告框,并继续下一次循环
            } else {
                // 如果输入的日期是有效的数字,计算日期对应的星期几
                var data = day % 7 // 使用模7运算来确定星期几,因为一周有7天

                if (data == 0) { // 如果余数为0,根据模运算的特性,这实际上是第7天,即星期日
                    alert("今天是星期日") // 弹出提示框,告知用户今天是星期日
                    break // 退出循环
                }
                alert("今天是星期" + data) // 否则,弹出提示框,告知用户今天是星期几(余数+1,因为余数0对应星期日)
                break // 退出循环
            }
        }

然而,这段代码存在逻辑错误。模7运算的结果应该是0到6,分别对应星期日到星期六。但是,代码中将余数直接用作星期数,这会导致星期日之后的日期显示错误。正确的做法是将余数加1,然后根据结果来确定星期几。例如,如果余数是1,那么应该是星期一。

此外,prompt函数返回的始终是字符串类型,所以使用isNaN函数来检查输入是否不是数字是正确的。但是,如果输入的日期是有效的数字,应该将其转换为整数类型,例如使用parseInt(day)

修正后的代码可能如下:

while (true) {
    var dayStr = prompt("请输入日期");
    var day = parseInt(dayStr); // 将输入转换为整数

    if (isNaN(day) || day < 1 || day > 31) {
        alert("日期输入不正确");
    } else {
        var weekDay = (day - 1) % 7; // 计算星期几,1对应星期一,所以减1
        var days = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
        alert("今天是" + days[weekDay]); // 弹出提示框,告知用户今天是星期几
        break; // 退出循环
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值