Estoy tratando de mostrar la disponibilidad de resorts específicos en el transcurso de un mes. Todos los resorts tienen diferentes habitaciones y diferentes días de fin de semana según la habitación. Necesito poder mostrar días de registro de entrada válidos en función de la disponibilidad con respecto a sus días de fin de semana.
Eso probablemente no tenga mucho sentido, así que permítanme explicarlo. Supongamos que la persona A quiere reservar una habitación para 3 días. Para que un día de check in sea válido, la habitación debe tener disponibilidad continua (IE Disponible 03/05, 06/05, 07/05 y 08/05 - El día de check in no cuenta para la estadía de tres días) . Para que el día de entrada sea válido también debe respetar el día de fin de semana. Por ejemplo, supongamos que la persona desea reservar una estadía de 3 días en una unidad de un dormitorio con un sábado como fin de semana. Suponiendo que haya disponibilidad continua, esto significaría que los días válidos para hacer el registro de entrada serían los siguientes: (sábado, domingo, lunes, martes y miércoles) y tendríamos que filtrar la disponibilidad los jueves y viernes.
Aquí es donde estoy luchando un poco. El punto final de la API al que llamo devuelve la disponibilidad como cadenas de fecha y hora. Originalmente pensé que podría simplemente llamar a la función Date.getDay() en la fecha y luego verificar si la fecha de fin de semana era mayor que el día + la duración de la estadía. Sin embargo, la función getDay devuelve 0 para el domingo, 1 para el lunes, etc., por lo que la mayoría de los números serían mayores que estos días. Por ejemplo, si el fin de semana es domingo, cualquier número sería mayor que 0 y, por lo tanto, la habitación no mostraría disponibilidad.
Otra opción que pensé fue crear un hashgraph con todas las combinaciones posibles de días, pero esto sería mucho trabajo, así que me gustaría evitarlo si es posible. Espero que haya una solución bastante fácil en la que no estoy pensando.