Boa noite,
Eu prefiro ter apenas um método de extensão simples:
Date.prototype.startOfWeek = function (pStartOfWeek) {
var mDifference = this.getDay() - pStartOfWeek;
if (mDifference < 0) {
mDifference += 7;
}
return new Date(this.addDays(mDifference * -1));
}
Você notará que isso realmente utiliza outro método de extensão que eu uso:
Date.prototype.addDays = function (pDays) {
var mDate = new Date(this.valueOf());
mDate.setDate(mDate.getDate() + pDays);
return mDate;
};
Agora, se suas semanas começarem no domingo, passe um "0" para o parâmetro pStartOfWeek, assim:
var mThisSunday = new Date().startOfWeek(0);
Da mesma forma, se suas semanas começarem na segunda-feira, passe um "1" para o parâmetro pStartOfWeek:
var mThisMonday = new Date().startOfWeek(1);
Saudações,