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 相关文章推荐
Jquery 表格合并的问题分享
Sep 17 Javascript
基于jquery的滚动鼠标放大缩小图片效果
Oct 27 Javascript
网页中返回顶部代码(多种方法)另附注释说明
Apr 24 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
Sep 26 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
Mar 02 Javascript
简述Matlab中size()函数的用法
Mar 20 Javascript
浅谈Javascript中的12种DOM节点类型
Aug 19 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
Aug 08 Javascript
three.js实现3D视野缩放效果
Nov 16 Javascript
js中let和var定义变量的区别
Feb 08 Javascript
JavaScript常用工具方法封装
Feb 12 Javascript
vue-父子组件和ref实例详解
Nov 10 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
将RTF格式的文件转成HTML并在网页中显示的代码
2006/10/09 PHP
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
smarty简单分页的实现方法
2014/10/27 PHP
php使用递归计算文件夹大小
2014/12/24 PHP
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
用JQuery 实现AJAX加载XML并解析的脚本
2009/07/25 Javascript
Fixie.js 自动填充内容的插件
2012/06/28 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
2014/01/02 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
2015/12/08 Javascript
微信小程序 绘图之饼图实现
2016/10/24 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
原生js实现Flappy Bird小游戏
2018/12/24 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
[13:16]INFAMOUS vs VGJ T BO3
2018/06/07 DOTA
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
Python爬取京东的商品分类与链接
2016/08/26 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
Python3标准库总结
2019/02/19 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
python基本算法之实现归并排序(Merge sort)
2020/09/01 Python
用Python制作音乐海报
2021/01/26 Python
外语专业毕业生自我评价分享
2013/10/05 职场文书
生物专业个人自荐信范文
2013/11/29 职场文书
同意转租证明
2015/06/24 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书
Python Matplotlib库实现画局部图
2021/11/17 Python