2017-03-14 16 views
2

我試圖通過修改iso周編號來顯示學校學期的週數。學校的自定義週數

+1

由於消息表明,你有一個語法錯誤。 'if(weekNo> = 5 && <= 18){' –

+1

所有的答案都很好,但是如果你希望你的條件的意圖更明顯,你總是可以像'if(5 <= weekNo && weekNo < = 18)' - 這清楚地表明它正在檢查這些範圍之間的weekNo –

回答

5

你可以在許多比不上多個值一樣,

if (weekNo >= 5 && <= 18) 

是非法的語法。而不是你做兩個比較加入了與「邏輯和」運營商:&&

if (weekNo >= 5 && weekNo <= 18) 

這是說:「如果weekNo大於或等於5」和「如果weekNo小於或等於18」

3

&&運營商的每一方都被視爲單獨的評估聲明。它期待&&之後的標識符。

重寫它像這樣爲每個if聲明:

weekNo >= 5 && weekNo <= 18 
1

你錯過了一些其他人指出的格式,並且在返回語句之前有一個流氓逗號。我已經爲你格式化了你的區塊。

function getWeekNumber(d) { 
 
    // Copy date so don't modify original 
 
    d = new Date(+d); 
 
    d.setHours(0,0,0,0); 
 
    // Set to nearest Thursday: current date + 4 - current day number 
 
    // Make Sunday's day number 7 
 
    d.setDate(d.getDate() + 4 - (d.getDay()||7)); 
 
    // Get first day of year 
 
    var yearStart = new Date(d.getFullYear(),0,1); 
 
    // Calculate full weeks to nearest Thursday 
 
    var weekNo = Math.ceil((((d - yearStart)/86400000) + 1)/7); 
 
    // Return array of year and week number 
 

 

 
    //modify week number to display 1-12 semester 2 
 
    if (weekNo >= 5 && weekNo <= 18) { 
 
     var schoolWeekNo = weekNo - 4; 
 
     var semester = 2; 
 
    } 
 
    //modify week number to display 1-12 semester 1 
 
    else if (weekNo >= 39 && weekNo<= 50) { 
 
     var schoolWeekNo = weekNo - 38; 
 
     var semester = 1; 
 
    } 
 
    //do not display week number for none semester dates 
 
    else { 
 
     schoolWeekNo = null; 
 
     semester = null; 
 
    }; 
 
    return [semester,schoolWeekNo]; 
 

 
}; 
 

 
alert(getWeekNumber(Date.now()));