Reputation: 367
Using the current date new Date(), I would like to calculate the date for the following Wednesday using Javascript.
For example, the current date is today:
"Sun Apr 18 2022 15:00:00 GMT"
What I would like to do is get the date for the following Wednesday, which would be:
"Wed Apr 20 2022 15:00:00 GMT"
If the current day is a Wednesday, I would like to calculate the date for the following Wednesday.
How could I achieve this?
Upvotes: 0
Views: 76
Reputation: 2497
Whenever I need to find something in JavaScript, I search the internet and prefix "mdn " to search the Mozilla development site. For example, searching Google for "mdn weekday" will give a result pointing to documentation for Date.prototype.getDay()
.
I would likely end up with something like this:
function daysToWednesday(dt) {
const day = Date(dt).getDay();
if (day < 3) {
return 3 - day;
} else {
return 10 - day;
}
}
function nextWednesday(dt) {
const ret = Date(dt);
ret.setDate(ret.getDate() + daysToWednesday(ret));
return ret;
}
Upvotes: 1
Reputation: 11001
Use the getDay
method which will give day of the week (0 - 6, from sunday to saturday). (Wednesday is day 3)
function nextWednesday(date) {
const day = date.getDay();
// getDay returns between 0 - 6. Sunday - Saturday.
// 3 is Wednesday
let daysToAdd = 0;
if (day < 3) {
daysToAdd = 3 - day;
} else {
daysToAdd = 7 - day + 3;
}
return new Date(date.getTime() + daysToAdd * 24 * 60 * 60 * 1000);
}
const today = new Date();
console.log('today: ', today.toString());
console.log('following wednesday: ', nextWednesday(today).toString())
Upvotes: 4