js 根據n年第n周,獲取此周的開始和結束日期


// 第n年的第n周,獲取開始和結束時間 (星期一為一周的開始)
function week_date(weekstr){
    let year = weekstr.split("-")[0]
    let weekNo = weekstr.split("-")[1]
    // 此年1號是星期幾
    let oneday = new Date(year+'-01-01').getDay() //0-6
    // 方便計算,當為星期天時為7
    if(oneday==0){
        oneday = 7
    }

    let one_fistday;
    let one_lastday;
    // 如果1號剛好是星期一
    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)
    }
    return [fistday,lastday]
}

//日期加減法  date參數為計算開始的日期,days為需要加的天數   
//格式: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()); 
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM