本文实例讲述了JS获取月份最后天数、最大天数与某日周数的方法。分享给大家供大家参考,具体如下:
rush:js;">
标题页
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,不用自己判断, 所以,我们想得到选择年选择月有多少天的话,只需要rush:js;">
var temp=new Date("选择年/选择月+1/0");
return temp.getDate()//最大天数
校验的话,也可以用这个方法。
下面是使用JS编写的获取某年某月有多少天的getDaysInMonth(year,month)方法:
rush:js;">
function getDaysInMonth(year,month){
month = parseInt(month,10)+1;
var temp = new Date(year+"/"+month+"/0");
return temp.getDate();
}
js 获取某年的某天是第几周
rush: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][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,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程序设计有所帮助。