第n年的第n周,獲取開始和結(jié)束時(shí)間

//日期加減法  date參數(shù)為計(jì)算開始的日期,days為需要加的天數(shù)
//格式:addDate('2017-1-11',20)
function addDate(date, days) {
    var d = new Date(date);
    d.setDate(d.getDate() + days);
    var m = d.getMonth() + 1;

    return (
            d.getFullYear() +
            "-" +
            (m > 9 ? m : "0" + m) +
            "-" +
            (d.getDate() > 9 ? d.getDate() : "0" + d.getDate())
    );
}

// 第n年的第n周,獲取開始和結(jié)束時(shí)間 (星期一為一周的開始)
function week_date(weekstr) {
    let year = weekstr.split("-")[0];
    let weekNo = weekstr.split("-")[1] * 1 + 1;
    // 此年1號(hào)是星期幾
    console.log('調(diào)用時(shí)傳的',year,weekNo);
    let oneday = new Date(year + "-01-01").getDay(); //0-6
    // console.log(oneday);
    // 方便計(jì)算,當(dāng)為星期天時(shí)為7
    if (oneday == 0) {
            oneday = 7;
    }

    let one_fistday;
    let one_lastday;
    // 如果1號(hào)剛好是星期一
    if (oneday == 1) {
            one_fistday = year + "-01-01";
            one_lastday = year + "-01-07";
    } else {
            let jj = 8 - oneday;
            one_fistday =
                    year -
                    1 +
                    "-12-" +
                    (31 - oneday + 2 > 9 ? 31 - oneday + 2 : "0" + (31 - oneday + 2));
            one_lastday = year + "-01-" + (jj > 9 ? jj : "0" + jj);
    }

    let fistday;
    let lastday;
    // 如果剛好是第一周
    if (weekNo == 1) {
            fistday = one_fistday;
            lastday = one_lastday;
    } else {
            fistday = addDate(one_lastday, (weekNo - 2) * 7 + 1);
            lastday = addDate(one_lastday, (weekNo - 1) * 7);
    }
    console.log(fistday, lastday,'week_date');
    return [fistday, lastday];
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容