Categories: Frontend Tech

Code of the Day: Javascript Date.prototype.setDay()

In Javascript, I find it strange how `Date.prototype.getDay()` in defined but `Date.prototype.setDay()`.
So here’s the code for `Date.prototype.setDay()`.

// Sets the Date object to the day of the week.
// @param {Number} - dayIndex must be from 0 - 6, where 0 is sunday.
// @return {Number} returns the primitive value of the Date object.
Date.prototype.setDay = Date.prototype.setDay || function (dayIndex) {
	dayIndex = Math.floor(+dayIndex);
	if (dayIndex < 0 || 6 < dayIndex) {
		throw new Error("Must pass integer between 0-6, where sunday is 0.");
	}
	this.setDate( this.getDate() + dayIndex - this.getDay() );
	return this.valueOf();
};

Demo 1

var a = new Date(Date.parse("Feb 1, 2014"));
a.setDay(0);
console.log(a.toDateString() === "Sun Jan 26 2014" );
a.setDay(6);
console.log(a.toDateString() === "Sat Feb 01 2014" );

Demo 2

// Prings the Monday - Friday for the current day.
var getWeekString = function () {
	var days = [],
		date = new Date();
		
	for (var i = 1, len = 6; i < len; i++) {
		date.setDay(i)
		days.push("## " + date.toDateString() );
	}
	return days;
};
console.log(getWeekString().join("\n\n"));

If you looking for a good Javascript Date library, checkout moment.js.

More info:
MDN Date Object

Larry Battle

I love to program, and discover new tech. Check out my stackoverflow and github accounts.

Share
Published by
Larry Battle

Recent Posts

What really is Data Science? Told by a Data Scientist

What REALLY is Data Science? Told by a Data Scientist - By Joma Tech

7 years ago

Video: How Water Towers Work

How Water Towers Work - Practical Engineering

7 years ago

Dev Tip: Simple tips to improve code reviews

Writing perfect code is a challenging process. That's where code reviews come in to help…

7 years ago

Video: How AI will change the 3d industry

"The Next Leap: How A.I. will change the 3D industry - Andrew Price - Blender"

7 years ago

Best Software Presentation for 2018

"Captain Disillusion: World's Greatest Blenderer - Live at the Blender Conference 2018 - CaptainDisillusion"

7 years ago

Dev Video: A Few Linux Shell Tips

My 5 Favorite Linux Shell Tricks for SPEEEEEED (and efficiency) - By tutoriaLinux > What's…

7 years ago