Date丨计算设置天数后的日期

2019-01-28  本文已影响0人  Cooli丨Y
/**------------------------------------
 * 封装一个函数,包含两个参数,日期和天数
 * 
 * 可以根据你输入的参数,显示你输入天数之后的日期
 * 
 * 年, 月, 日 -> 年, 月, 日
 * 
 */
// 设置各月份的天数
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)



上一篇下一篇

猜你喜欢

热点阅读