Advertisement
Koragg

Get Closest Week Day From Given Date [JavaScript]

Dec 19th, 2019
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <script>
  2. function getNextDayOfWeek(date, dayOfWeek) {
  3.     if (dayOfWeek < 0 || dayOfWeek > 6) return false;
  4.     if (!isDateObjectValid(date)) return false;
  5.     var resultDate = new Date(date.getTime());
  6.     resultDate.setDate(date.getDate() + (7 + dayOfWeek - date.getDay()) % 7);
  7.     return resultDate;
  8. }
  9.  
  10. function getPreviousDayOfWeek(date, dayOfWeek) {
  11.     if (dayOfWeek < 0 || dayOfWeek > 6) return false;
  12.     if (!isDateObjectValid(date)) return false;
  13.     var resultDate = new Date(date.getTime());
  14.     resultDate.setDate(date.getDate() - (7 - dayOfWeek + date.getDay()) % 7);
  15.     return resultDate;
  16. }
  17.  
  18. function getClosestDayOfWeek(date, dayOfWeek) {
  19.     if (dayOfWeek < 0 || dayOfWeek > 6) return false;
  20.     if (!isDateObjectValid(date)) return false;
  21.     var inputedDate = new Date(date.getTime());
  22.     var nextDate = getNextDayOfWeek(inputedDate, dayOfWeek);
  23.     var previousDate = getPreviousDayOfWeek(inputedDate, dayOfWeek);
  24.     if (nextDate - inputedDate < inputedDate - previousDate) {
  25.         return nextDate;
  26.     }
  27.     if (nextDate - inputedDate > inputedDate - previousDate) {
  28.         return previousDate;
  29.     }
  30.     return inputedDate;
  31. }
  32.  
  33. function isDateObjectValid(date) {
  34.   return date instanceof Date && !isNaN(date);
  35. }
  36.  
  37. var date = new Date("2019-12-19");
  38. alert("Closest Friday: " + getClosestDayOfWeek(date, 5)); // 5 is Friday
  39. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement