What I am trying to write is a simple function that takes in a day (D), X number of days and returns the day X days later.
Days can be represented by (‘Mon’, ‘Tue’, ‘Wed’, ‘Thu’,’Fri’,’Sat’,’Sun’).
X can be any int 0 and up.
For Example D=’Wed’, X=’2′, return ‘Fri’, D=’Sat’ and X=’5′, returns ‘Wed’.
How do I do this in JS? Any tips and suggestions appreciated.
Advertisement
Answer
If I understand your question correctly, then perhaps you could do something like the following:
- find the index of input “d” against days of the week
- apply “x” to offset the found index
- apply modulo operator by total number of days (7) to revolve offset index around valid day range
- return resulting day by that computed index
Here’s a code snippet – hope that helps!
function getWeekDayFromOffset(d, x) { // Array of week days const days = ['Mon', 'Tue', 'Wed', 'Thu','Fri','Sat','Sun']; // Find index of input day "d" const dIndex = days.indexOf(d); // Take add "x" offset to index of "d", and apply modulo % to // revolve back through array const xIndex = (dIndex + x) % days.length; // Return the day for offset "xIndex" return days[xIndex]; } console.log('returns Fri:', getWeekDayFromOffset('Wed', 2)); console.log('returns Thu:', getWeekDayFromOffset('Sat', 5));