Nodejs Utililty Methods Week Calculate

List of utility methods to do Week Calculate

Description

The list of methods to do Week Calculate are organized into topic(s).

Method

getDateOfISOWeek(w, y)
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;
};
getDayofWeek()
var daysOfWeek = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
Date.prototype.getDayofWeek = function() {
  return daysOfWeek[this.getDay()];
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));
};
getFullWeek()
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; };
...
getRealWeek()
Date.prototype.getRealWeek = function()
    var monday = this;
    if (monday.getDay() < 1) {
        monday = monday.clone().next().monday();
    return monday.getWeek();
};
getStudyWeek()
Date.prototype.getStudyWeek = function () {
  var inc = (this.getDay() == 6) ? 1 : 0;
  return this.getWeek() + inc;
};
moveToBeginOfWeek(weekStart)
Date.prototype.moveToBeginOfWeek = function(weekStart)
    if (this.getDay() != weekStart) {
        this.moveToDayOfWeek(weekStart, -1);
    return this;
};
moveToEndOfWeek(weekStart)
Date.prototype.moveToEndOfWeek = function(weekStart)
    var weekEndDay = weekStart + 6;
    if (weekEndDay > 6) {
        weekEndDay -= 7;
    if (this.getDay() != weekEndDay) {
        this.moveToDayOfWeek(weekEndDay, 1);
    return this;
};
offsetByWeek(offset)
Date.prototype.offsetByWeek = function(offset) {
    this.setTime(this.getTime() + offset * (7 * 24 * 60 * 60 * 1000));
    return this;
};
subWeeks(value)
Date.prototype.subWeeks = function(value) {
  this.subDays(value * 7);
  return this;
};