Advertisement
Guest User

Untitled

a guest
Jul 11th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. export const checkIsOpenRestaurant = (hours: Array<IHoursRestaurant> | undefined): boolean => {
  2.    if (!hours) return false;
  3.  
  4.    // force example
  5.    hours = [{
  6.       from: '19:00',
  7.       to: '21:00',
  8.       days: [2, 3, 4, 5, 6]
  9.    }];
  10.  
  11.    // force example
  12.    const today = new Date(2019, 6, 11, 21, 30);
  13.    const day = today.getDay() + 1;
  14.  
  15.    const searchInDays = hours.filter(d => d.days && d.days.includes(day));
  16.  
  17.    if (!searchInDays) {
  18.       return false;
  19.    }
  20.  
  21.    const searchInHours = searchInDays.filter(h => {
  22.       let open = new Date();
  23.       let close = new Date();
  24.  
  25.       const dividerHoursOpen = h.from.split(':');
  26.       const hoursOpen = Number(dividerHoursOpen[0]) || 0;
  27.       const minutesOpen = Number(dividerHoursOpen[1]) || 0;
  28.  
  29.       open.setHours(hoursOpen);
  30.       open.setMinutes(minutesOpen);
  31.  
  32.       const dividerClose = h.to.split(':');
  33.       const hoursClose = Number(dividerClose[0]) || 0;
  34.       const minutesClose = Number(dividerClose[1]) || 0;
  35.  
  36.       close.setHours(hoursClose);
  37.       close.setMinutes(minutesClose);
  38.  
  39.       if (open > close) {
  40.          close.setDate(close.getDate() + 1);
  41.       }
  42.  
  43.       if (today >= open && today <= close) {
  44.          return h;
  45.       }
  46.  
  47.       return null;
  48.    });
  49.  
  50.    if (searchInHours.length) {
  51.       return true;
  52.    }
  53.  
  54.    return false;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement