/**------------------------------------
* 封装一个函数,包含两个参数,日期和天数
*
* 可以根据你输入的参数,显示你输入天数之后的日期
*
* 年, 月, 日 -> 年, 月, 日
*
*/
// 设置各月份的天数
function diffDay (year, month){
if(month === 2){
if((year%4 === 0 && year%100 !== 0) ||year%400 === 0){
return 29;
}else {
return 28;
}
}else if(month === 4 || month === 6 || month === 9 || month === 11){
return 30;
}else{
return 31;
}
}
// 计算n天之后的日期
function diffDate(nDate, nDay){
let y = nDate.getFullYear();
let m = nDate.getMonth()+1;
let d = nDate.getDate();
while(nDay){
var getday = diffDay(y, m);
if ((d + nDay) <= getday) {
d += nDay;
break;
}else {
m++;
nDay = nDay - (getday - d)
d = 0;
if(m > 12){
y++;
m = 1;
}
}
}
// 重新设置时间
let newDate = new Date();
newDate.setFullYear(y);
newDate.setMonth(m - 1);
newDate.setDate(d);
return newDate;
}
let nowDate = new Date()
let newDate = diffDate(nowDate, 365)
console.log(newDate)
网友评论