user13381500
user13381500

Reputation:

week start array javascript till X days

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

Answers (2)

Anurag Srivastava
Anurag Srivastava

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

codeanalyse
codeanalyse

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

Related Questions