2011-01-12 15 views

Antwort

0

Der einfachste Weg (algorithmisch - Sie den Code als Übung herausfinden können) ist:

  1. die Anzahl der Tage, die Sie im Schuljahr (in der Regel ~ 185 für die meisten öffentlichen Schulen)
  2. Berechnen Sie die Anzahl der verbleibenden Schultage zwischen Ihrem aktuellen Datum und dem Ende der Klassen (achten Sie darauf, Wochenenden, Feiertage, Tage in Betrieb usw. zu ignorieren, da diese nicht Teil der 185 sind).
  3. Nehmen Sie den Wert von Schritt zwei und teilen Sie ihn in den ersten. Das gibt Ihnen Ihren Prozentsatz.
  4. Zeigen Sie dies in der Statusleiste der jQuery-Benutzeroberfläche an.
9

Beispiel:http://jsfiddle.net/FLaJM/4/

var start = new Date(2005,0,1), 
    end = new Date(2021,0,1), 
    today = new Date(); 

alert(Math.round(100-((end - start) * 100)/today) + '%'); 

oder wenn Sie den Prozentsatz verbleibenden wollte:

Beispiel:http://jsfiddle.net/FLaJM/3/

alert(Math.round(((end - start) * 100)/today) + '%'); 
+0

ich die inverse benötigt: someDate = start.getTime() + ((end.getTime() - start.getTime()) * Prozentsatz). – GijsjanB

1

Wenn Sie mit MomentJS, die ich für Javascript Datum Sachen empfehlen, können Sie dies tun:

var percentOfDayRangeComplete = function(start, end) { 
    var now = moment(); 
    start = start || moment(now).startOf('day'); 
    end = end || moment(now).endOf('day'); 
    var totalMillisInRange = end.valueOf() - start.valueOf(); 
    var elapsedMillis = now.valueOf() - start.valueOf(); 
    // This will bound the number to 0 and 100 
    return Math.max(0, Math.min(100, 100 * (elapsedMillis/totalMillisInRange))); 
}; 

jsFiddle es in Aktion zu sehen ...

Verwandte Themen