javascript应用之获得年、月、季、周的最后一天
应用描述:
根据输入的类别参数,“年”,“月”,“季”,“周”分别获得每年最后一天,每个月最后一天,每个季度最后一天,每周最后一天。
Javascript如下:
<script>
function getLastDay(str,param){
//**************************
//编写: 邬畏畏
//日期: 2013-5
//**************************
var p = param;
var y = p.getYear();
var m = p.getMonth();
var d = p.getDate();
var j ;
if(str=="月")
{
return y+"-"+m+"-"+getD(y,m);
}
if(str=="年")
{
return y+"-"+12+"-"+getD(y,m);
}
if(str=="季")
{
if(m==0)
{j=12;}
else
{j = getM(m);}
return y+"-"+j+"-"+getD(y,j);
}
if(str=="周")
{
return y+"-"+m+"-"+getW(d);
}
function getD(y,m) //得到某个月最后一天,result:31 or 30 or 29|28
{
switch(y,m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
break;
case 2:
if(y%4==0 && y%100!=0 || y%400==0)
return 29;
else
return 28;
break;
default:
return 30;
}
}
function getM(r){ //得到季度的最后一个月 ,比如:r=4 or 5 or 6 ,result:6 单位是月
var mm=r;
if(m%3==0)
{
return mm;
}
else if(mm%3==2)
return mm+1;
else(mm%3==1)
return mm+2;
}
function getW(d){ //得到周某,如:2013-5-12 ,得到 2013年5月12日的本周周日是多少
var _d = new Date(y,m-1,d);
var week = _d.getDay();
return d + (7-week);
}
}
mydate = getLastDay("周",new Date(2013,5,23));
alert(mydate);
</script>