鱼C论坛

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

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

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

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

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

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


                               
登录/注册后可看大图


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

不许看答案,否则打屁屁





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

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

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


   





Code

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


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

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

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

  29.                 return f;
  30.             }
  31.         }

  32.         dateFormat();

  33.         //获取指定日期所在月份的天数
  34.         function getMonthDays(Y, M){
  35.             //Y代表年份;M 代表为月数0~11,月份加1,但是第3个参数为0,所以不+1;第3个参数要求最小为1,但是设置0,就变成M月的最后一天了
  36.             return new Date(Y, M, 0).getDate();
  37.         }
  38.         //获取指定日期所在月份的天数====================start
  39.         document.getElementById("getMonthDays1").innerHTML = "2017年1月:" + getMonthDays("2017", "1") +"天";
  40.         document.getElementById("getMonthDays2").innerHTML = "2017年2月:" + getMonthDays("2017", "2") +"天";
  41.         
  42.     };
  43. </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-3-29 14:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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