2017-03-14 4 views
2

Ich versuche, die Woche des Schulsemesters Woche anzeigen, indem Sie die ISO-Woche Nummer ändern.Benutzerdefinierte Woche Anzahl der Jahre für die Schule

+1

Wie die Meldung anzeigt, haben Sie einen Syntaxfehler. 'if (weekNo> = 5 && <= 18) {' –

+1

alle Antworten sind gut, aber wenn Sie möchten, dass die Absicht Ihrer Bedingung offensichtlicher ist, können Sie immer die Bedingung schreiben wie 'if (5 <= WeekNo && weekNo < = 18) '- was deutlich zeigt, dass die Woche zwischen diesen Bereichen geprüft wird –

Antwort

5

Sie möchten, dass

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

ist illegal Syntax eine Zahl auf mehrere Werte nicht vergleichen kann. stattdessen machen Sie zwei Vergleiche mit einem „logischen und“ Operator verbunden: &&

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

Dies sagt: „Wenn weekNo größer oder gleich 5“ und „wenn weekNo kleiner oder gleich 18“

3

Jede Seite des Operators && wird als separate Anweisung für die Auswertung betrachtet. Es erwartet eine Kennung nach der &&.

es so Rewrite für jedes Ihrer if Aussagen:

weekNo >= 5 && weekNo <= 18 
1

Ihnen fehlen einige Formatierungen, auf die andere hingewiesen haben, und es gibt ein Rogue-Komma vor der Return-Anweisung. Ich habe deinen Block für dich formatiert.

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()));

Verwandte Themen