js 根据年月判断有多少天

本文介绍了一个实用的函数,用于根据不同的年份和月份判断每个月的具体天数。通过详细的代码示例,展示了如何处理平年和闰年的2月天数,以及其他月份的常规天数。

需求:根据不同得年份和月份判断该月有多少天

//根据年月得到天数
getDayNumByYearMonth:function (year,month){
    switch (month) {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            return 31;
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            return 30;
            break;
        case 2:
            this.actions.isLeapYear(year) ? 29 : 28;
    }
},
//是否是闰年
isLeapYear:function(year){
    if(year/4 == 0 && year/100 != 0){
        return true ;
    } else if (year/400 == 0){
        return true ;
    } else{
        return false ;
    }
},

要用JavaScript编写一个程序,用于输入年份和月份并判断该月有多少,可以按照以下步骤进行: 首先需要创建两个输入框分别接收用户提供的“年”和“月”,然后通过日期对象来计算目标月份的数。 以下是完整代码示例以及解释: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>查询某个月有几</title> <script type="text/javascript"> function getDays() { var year = document.getElementById("year").value; // 获取用户输入的年份 var month = document.getElementById("month").value; // 获取用户选择的月份 if (isNaN(year) || isNaN(month)) { // 检查是否为合法数字 alert('请输入有效的年份和月份!'); return; } // JavaScript 中月份是从0开始计数的,因此我们传入的是实际值减去1 var daysInMonth = new Date(year, month, 0).getDate(); document.getElementById("result").innerHTML = "您查询的" + year + "年的第" + month + "月共有:" + daysInMonth + ""; } </script> </head> <body> <h2>查看指定月份的数:</h2> <p><label for="year">年份:</label> <input id="year" placeholder="如:2023"/></p> <p><label for="month">月份:</label> <select id="month"> <option value="">请选择...</option> <!-- 预填每个月份 --> <option value="1">一月</option> <option value="2">二月</option> ... <option value="12">十二月</option> </select></p> <button onclick="getDays()">确认提交</button> <div id="result"></div> </body> </html> ``` ### 解释: 1. **HTML部分** 提供了基本界面布局包括输入字段、下拉列表及按钮等元素。 2. **Script段落中的函数`getDays()`**: 此处主要实现了核心功能——从用户获取数据,并借助Date构造器准确获得给定日期所在月最后一的具体数值。 关于 `new Date(year, month, 0)` 的说明: 当我们将日期设置成前一个月的最后一日(即本月第一再往前推一日),就能够轻松确定当前所选之月中包含几日!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值