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实现的立体文字渐变效果
May 17 Javascript
JavaScript和ActionScript的交互实现代码
Aug 01 Javascript
推荐10个超棒的jQuery工具提示插件
Oct 11 Javascript
通过length属性判断jquery对象是否存在
Oct 18 Javascript
多种方法实现JS动态添加事件
Nov 01 Javascript
javascript实现详细时间提醒信息效果的方法
Mar 11 Javascript
实现音乐播放器的代码(html5+css3+jquery)
Aug 04 Javascript
Eclipse引入jquery报错如何解决
Dec 01 Javascript
微信小程序使用第三方库Immutable.js实例详解
Sep 27 Javascript
Async Validator 异步验证使用说明
Jul 03 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
Mar 28 Javascript
JS实现滑动插件
Jan 15 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
实用函数5
2007/11/08 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
2015/09/06 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
模板视图和AngularJS之间冲突的解决方法
2016/11/22 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
python判断链表是否有环的实例代码
2020/01/31 Python
Tkinter中复选菜单是否被选中的判断与设置方式
2020/03/04 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
美国中西部家用医疗设备商店:Med Mart(轮椅、踏板车、升降机等)
2019/04/26 全球购物
英国电信商店:BT Shop
2019/12/17 全球购物
Under Armour安德玛意大利官网:美国高端运动科技品牌
2020/01/16 全球购物
Linux的主要特性
2014/10/06 面试题
公司员工检讨书
2014/02/08 职场文书
运动会加油口号
2014/06/07 职场文书
搞笑车尾标语
2014/06/23 职场文书
2014年安全生产目标责任书
2014/07/23 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
八年级数学教学反思
2016/02/17 职场文书
MySQL通过binlog恢复数据
2021/05/27 MySQL
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android
基于Python实现股票收益率分析
2022/04/02 Python