JS获取月份最后天数、最大天数与某日周数的方法
本文实例讲述了JS获取月份最后天数、最大天数与某日周数的方法。分享给大家供大家参考,具体如下:
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title>标题页</title>
<scriptlanguage="javascript">
functiongetLastDay(year,month)
{
varnew_year=year;//取当前的年份
varnew_month=month++;//取下一个月的第一天,方便计算(最后一天不固定)
if(month>12)//如果当前大于12月,则年份转到下一年
{
new_month-=12;//月份减
new_year++;//年份增
}
varnewnew_date=newDate(new_year,new_month,1);//取当年当月中的第一天
return(newDate(new_date.getTime()-1000*60*60*24)).getDate();//获取当月最后一天日期
}
</script>
<body>
<inputid="Button1"type="button"value="取2007年5月的最后一天"onClick="alert(getLastDay(2007,5))"/>
</body>
</html>
js得到一个月最大天数
JS里面的newDate("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,不用自己判断,
所以,我们想得到选择年选择月有多少天的话,只需要
vartemp=newDate("选择年/选择月+1/0");
returntemp.getDate()//最大天数
校验的话,也可以用这个方法。
下面是使用JS编写的获取某年某月有多少天的getDaysInMonth(year,month)方法:
functiongetDaysInMonth(year,month){
month=parseInt(month,10)+1;
vartemp=newDate(year+"/"+month+"/0");
returntemp.getDate();
}
js获取某年的某天是第几周
/**
*判断年份是否为润年
*
*@param{Number}year
*/
functionisLeapYear(year){
return(year%400==0)||(year%4==0&&year%100!=0);
}
/**
*获取某一年份的某一月份的天数
*
*@param{Number}year
*@param{Number}month
*/
functiongetMonthDays(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}
*/
functiongetWeekNumber(y,m,d){
varnow=newDate(y,m-1,d),
year=now.getFullYear(),
month=now.getMonth(),
days=now.getDate();
//那一天是那一年中的第多少天
for(vari=0;i<month;i++){
days+=getMonthDays(year,i);
}
//那一年第一天是星期几
varyearFirstDay=newDate(year,0,1).getDay()||7;
varweek=null;
if(yearFirstDay==1){
week=Math.ceil(days/yearFirstDay);
}else{
days-=(7-yearFirstDay+1);
week=Math.ceil(days/7)+1;
}
returnweek;
}
希望本文所述对大家JavaScript程序设计有所帮助。