Here you can find the source of getFirstDayOfWeek()
Date.prototype.getFirstDayOfWeek = function() { "use strict"; var temp = new Date(this.getTime()); var distance = (temp.getDay()-1).mod(7); return new Date(this.getTime() - (distance * 86400000)); };
Date.prototype.getDateOfISOWeek = function (w, y) { var simple = new Date(y, 0, 1 + (w - 1) * 7); var dow = simple.getDay(); var ISOweekStart = simple; if (dow <= 4) ISOweekStart.setDate(simple.getDate() - simple.getDay() + 1); else ISOweekStart.setDate(simple.getDate() + 8 - simple.getDay()); return ISOweekStart; };
var daysOfWeek = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; Date.prototype.getDayofWeek = function() { return daysOfWeek[this.getDay()];
Date.prototype.getFullWeek = function(){ var jan1, w, d = new Date(this); d.setDate(d.getDate()+4-(d.getDay()||7)); jan1 = new Date(d.getFullYear(),0,1); w = Math.ceil((((d-jan1)/86400000)+1)/7); return {y: d.getFullYear(), w: w }; }; Date.prototype.getWeek = function(){ return this.getFullWeek().w; }; var getWeeksInYear = function(y){ return new Date(y,11,28).getFullWeek().w; }; ...
Date.prototype.getRealWeek = function() var monday = this; if (monday.getDay() < 1) { monday = monday.clone().next().monday(); return monday.getWeek(); };
Date.prototype.getStudyWeek = function () { var inc = (this.getDay() == 6) ? 1 : 0; return this.getWeek() + inc; };
Date.prototype.moveToBeginOfWeek = function(weekStart) if (this.getDay() != weekStart) { this.moveToDayOfWeek(weekStart, -1); return this; };