JS获取月份最后天数、最大天数与某日周数的方法


Posted in Javascript onDecember 08, 2015

本文实例讲述了JS获取月份最后天数、最大天数与某日周数的方法。分享给大家供大家参考,具体如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>标题页</title>
<script language="javascript">
function getLastDay(year,month)
{
 var new_year = year;  //取当前的年份
 var new_month = month++;//取下一个月的第一天,方便计算(最后一天不固定)
 if(month>12)      //如果当前大于12月,则年份转到下一年
 {
 new_month -=12;    //月份减
 new_year++;      //年份增
 }
 var newnew_date = new Date(new_year,new_month,1);//取当年当月中的第一天
 return (new Date(new_date.getTime()-1000*60*60*24)).getDate();//获取当月最后一天日期
}
</script>
<body>
  <input id="Button1" type="button" value="取2007年5月的最后一天" onClick="alert(getLastDay(2007,5))" />
</body>
</html>

js得到一个月最大天数
 
JS里 面的new Date("xxxx/xx/xx")这个日期的构造方法有一个妙处,
当你传入的是"xxxx/xx/0"(0号)的话,得到的日期是"xx"月的前一个 月的最后一天("xx"月的最大取值是69,题外话),
当你传入的是"xxxx/xx/1"(1号)的话,得到的日期是"xx"月的后一个 月的第一天(自己理解)
如果传入"1999/13/0",会得到"1998/12/31"。而且最大的好处是当你传入"xxxx/3/0",会得到xxxx年2月的最后一天,它会自动判断当年是否是闰年来返回28或29,不用自己判断,
所以,我们想得到选择年选择月有多少天的话,只需要

var temp=new Date("选择年/选择月+1/0");
return temp.getDate()//最大天数

校验的话,也可以用这个方法。

下面是使用JS编写的获取某年某月有多少天的getDaysInMonth(year, month)方法:

function getDaysInMonth(year,month){
   month = parseInt(month,10)+1;
   var temp = new Date(year+"/"+month+"/0");
   return temp.getDate();
}

js 获取某年的某天是第几周

/**
 * 判断年份是否为润年
 *
 * @param {Number} year
 */
function isLeapYear(year) {
  return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);
}
/**
 * 获取某一年份的某一月份的天数
 *
 * @param {Number} year
 * @param {Number} month
 */
function getMonthDays(year, month) {
  return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month] || (isLeapYear(year) ? 29 : 28);
}
 /**
 * 获取某年的某天是第几周
 * @param {Number} y
 * @param {Number} m
 * @param {Number} d
 * @returns {Number}
 */
function getWeekNumber(y, m, d) {
  var now = new Date(y, m - 1, d),
    year = now.getFullYear(),
    month = now.getMonth(),
    days = now.getDate();
  //那一天是那一年中的第多少天
  for (var i = 0; i < month; i++) {
    days += getMonthDays(year, i);
  }
  //那一年第一天是星期几
  var yearFirstDay = new Date(year, 0, 1).getDay() || 7;
  var week = null;
  if (yearFirstDay == 1) {
    week = Math.ceil(days / yearFirstDay);
  } else {
    days -= (7 - yearFirstDay + 1);
    week = Math.ceil(days / 7) + 1;
  }
  return week;
}

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript 模式设计之工厂模式详细说明
May 10 Javascript
javascript自动给文本url地址增加链接的方法分享
Jan 20 Javascript
jQuery的animate函数实现图文切换动画效果
May 03 Javascript
javascript计时器编写过程与实现方法
Feb 29 Javascript
BootStrap实用代码片段之一
Mar 22 Javascript
几句话带你理解JS中的this、闭包、原型链
Sep 26 Javascript
Jquery on绑定的事件 触发多次实例代码
Dec 08 Javascript
AngularJS中的缓存使用
Jan 11 Javascript
jquery滚动条插件slimScroll使用方法
Feb 09 Javascript
JS实现的点击表头排序功能示例
Mar 27 Javascript
AngularJS创建一个上传照片的指令实例代码
Feb 24 Javascript
javascript将16进制的字符串转换为10进制整数hex
Mar 05 Javascript
AngularJS Module方法详解
Dec 08 #Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
Dec 08 #Javascript
JS与jQ读取xml文件的方法
Dec 08 #Javascript
js实现select下拉框菜单
Dec 08 #Javascript
基于jQuery 实现bootstrapValidator下的全局验证
Dec 07 #Javascript
JavaScript的代码编写格式规范指南
Dec 07 #Javascript
JSON遍历方式实例总结
Dec 07 #Javascript
You might like
比较全的PHP 会话(session 时间设定)使用入门代码
2008/06/05 PHP
php把session写入数据库示例
2014/02/26 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
2016/03/14 PHP
PHP实现类似于C语言的文件读取及解析功能
2017/09/01 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
2018/04/04 PHP
JS控制表格隔行变色
2006/06/26 Javascript
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
微信小程序实现星级评价效果
2018/12/28 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
Vue数组响应式操作及高阶函数使用代码详解
2020/08/01 Javascript
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
python使用建议与技巧分享(二)
2020/08/17 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
优秀毕业生推荐信
2013/11/02 职场文书
团员的自我评价
2013/12/01 职场文书
黄河象教学反思
2014/02/10 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
部队2015年终工作总结
2015/04/02 职场文书
大学生受助感言
2015/08/01 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书