Reputation:
I have a logic issue with the week start. Here is a code sample below.
WeekStarts(WeekN) {
let WeekBD = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
let ArrIndex = WeekBD.findIndex(WeekN);
for (let u = 0; u < WeekBD.length; u++) {
if (ArrIndex == 6) {
} else {
}
}
}
As if i select from the drop-down which has Monday to Sunday as value now i want to select from that day till 5 days a week.
E.g. as if i select Saturday as the start day of the week then its total 5 days would be Saturday till Wednesday that is 5 days total not 7.
Upvotes: 1
Views: 55
Reputation: 14413
As mentioned in comments, you can use the modulo (%)
operator if you want to find just start / end days
const getDaysFrom = (weekday, noOfDays) => {
const weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
, weekdayIndex = weekdays.indexOf(weekday)
console.log(
"Start:", weekday,
"Days:", noOfDays,
"End:", weekdays[(weekdayIndex + noOfDays - 1) % weekdays.length]
)
}
getDaysFrom('Saturday', 5)
getDaysFrom('Thursday', 2)
getDaysFrom('Tuesday', 6)
getDaysFrom('Friday', 4)
Upvotes: 0
Reputation: 47
Please try th code below:
function WeekStarts(WeekN) {
let WeekBD = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
let ArrIndex = WeekBD.indexOf(WeekN);
var i = 1;
while(i <= 5){
if(ArrIndex > 6){ ArrIndex = 0 };
console.log(WeekBD[ArrIndex]);
i++;
ArrIndex++;
}
}
Upvotes: 0