鱼C论坛

 找回密码
 立即注册
查看: 3232|回复: 10

[每日一练] 技法79 (◐‿◑) 获得指定月份的天数

[复制链接]
发表于 2017-11-11 11:52:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2017-11-11 11:52 编辑


                               
登录/注册后可看大图


按照提示,完成代码,秀秀你的编程能力!

不许看答案,否则打屁屁





分析:
        通过计算某个月份的天数可以完成很多与日期结合的需求,例如:通过程序可以计算员工当月实际的工作天数、计算2月份天数判断是平年还是闰年等。

        如何获取指定日期的天数呢?对于Js特性了解不是很深的鱼油,会想到很复杂的算法。

        这次分享一个很棒的玩法。
Snip20171111_99.png


   





Code

HTML:
<h2>获取指定日期所在月份的天数</h2>
    <p id='getMonthDays1'>2017年1月:</p>
    <p id='getMonthDays2'>2017年2月:</p>

JS:
<script type="text/javascript">
    window.onload = function(){
        //日期格式化成字符串====================start
        function dateFormat(){
            Date.prototype.format = function(f){
                //获取对象中的日期
                var date = {
                            "Y" : this.getFullYear(),//获取年
                            "M" : (this.getMonth() + 1),//获取月
                            "D" : this.getDate(),//获取日
                            "h" : this.getHours(),//获取小时
                            "m" : this.getMinutes(),//获取分钟
                            "s" : this.getSeconds()//获取秒
                        },
                        d = "",//初始化接受日期变量的对象
                        r = false,//判断是否存在待替换的字符
                        reg = null,//正则
                        _d = "";//日期

                for(d in date){//过滤日期标示符
                    //判断是否有待格式化的字符
                    reg = new RegExp("[" + d + "]{1,}", "g");
                    r = reg.test(f);

                    if(r)//验证是否存在
                    {
                        _d = date[d];//被替换的日期
                        f = f.replace(reg, _d < 10 ? ("0" + _d) : _d);
                    }
                }

                return f;
            }
        }

        dateFormat();

        //获取指定日期所在月份的天数
        function getMonthDays(Y, M){
            //Y代表年份;M 代表为月数0~11,月份加1,但是第3个参数为0,所以不+1;第3个参数要求最小为1,但是设置0,就变成M月的最后一天了
            return new Date(Y, M, 0).getDate();
        }
        //获取指定日期所在月份的天数====================start
        document.getElementById("getMonthDays1").innerHTML = "2017年1月:" + getMonthDays("2017", "1") +"天";
        document.getElementById("getMonthDays2").innerHTML = "2017年2月:" + getMonthDays("2017", "2") +"天";
        
    };
</script>




请按照自己的理解订正对概念的认知


代码说明(秀智商
游客,如果您要查看本帖隐藏内容请回复





回顾:






源代码: 79.zip (1.22 KB, 下载次数: 3, 售价: 5 鱼币)





如果喜欢,请订阅


如果喜欢,别忘了评分


                               
登录/注册后可看大图

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-21 21:30:15 | 显示全部楼层
希望自己能有智商
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-17 17:46:42 | 显示全部楼层
  查看一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-6 20:09:36 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-18 10:00:41 | 显示全部楼层
8639638
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-20 16:25:33 | 显示全部楼层
没看懂啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-20 16:28:11 | 显示全部楼层

看懂了 这道题和你的 dataFormate() 没关系啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-9 12:57:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2020-4-3 16:20:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-9-22 15:34:17 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-13 14:08:35 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 21:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表