与えられた日付の前月の日付を計算します.
979 ワード
例えば:所定の締切日enddate=2010-07-31
計算開始日startdate=2010-06-30
この問題の鍵は以下の点について考えることです.
1、startdate年越し
2、startdateは2月(闰年の状況を考慮する必要がある)
3、大きさの月
計算開始日startdate=2010-06-30
この問題の鍵は以下の点について考えることです.
1、startdate年越し
2、startdateは2月(闰年の状況を考慮する必要がある)
3、大きさの月
function getInitStartDate(enddate){
var comp = enddate.split("-");
var year = comp[0];
var month = comp[1];
var date = comp[2];
if(month == "01") { //
month = 12;
year = year - 1;
} else {
month = month - 1;
if(month == 2 && date > 28) {
date = isLeapYear(year) ? 29 : 28;
} else if(date == 31){
switch(month) {
case 4:
case 6:
case 9:
case 11: date = 30; break;
default: break;
}
}
}
month = (""+month).length==1 ? ("0"+month) : (""+month);
var dateFormat = year + "-" + month + "-" + date;
return dateFormat;
}
function isLeapYear(y) { // y
return (y % 4 == 0) && (y % 400 == 0 || y % 100 != 0);
}
alert(getInitStartDate("2010-07-31"));