Ver Mensaje Individual
  #8 (permalink)  
Antiguo 12/09/2010, 16:44
codigouserphp
 
Fecha de Ingreso: septiembre-2010
Mensajes: 28
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Comparar si dos horas se cruzan entre si

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Lo único que necesitas es saber si la hora de inicio de la nueva está entremedio de alguna de las que ya están o si la hora de fin de la nueva lo está.
Eso te dará la respuesta.

Algo así te devolvería 1 si hay algún cruzamiento entre el valor de horainicial u horafinal, contra alguno de los horarios que figuren en la tabla. Si devuelve cero, no se cruza con ninguna.
Código MySQL:
Ver original
  1. SELECT COUNT(*) cruzadas
  2. FROM tabla T
  3.   (horainicial BETWEEN Hora_Inicio AND Hora_Fin)
  4.   OR
  5.   (horafinal BETWEEN Hora_Inicio AND Hora_Fin);

Hola gnzsoloyo, buen dia!
Pero fijate que tambien habria que tomar en cuenta algo....

¿que tal si la hora a comparar es:
06:00 a 17:00 Hrs (a esa hora quieres prácticar FUTBOL)

y todas las demas (con las que se comparará) son las ya mencionadas:


HORARIO ACTIVIDAD

07:00 - 14:00 Hrs Estudiar
09:00 - 14:00 Hrs Trabajar
08:00 - 13:00 Hrs Descansar
(*solo por asignarles una actividad cualquiera)

Ni la hora de inicio, ni la hora de fin están en esos rangos, pero aun así, se cruzan :S ..puesto que la hora comparada te ocupa toodos los demas horarios....,
osea, no podrias practicar NINGUNA actividad porque el FUTBOL ya te ocupa toodas esas horas..
Ahi el sistema diría: "Usted no puede practicar futbol puesto que el horario ya está ocupado" ó "Usted no puede estudiar, trabajar o descansar puesto que a esas horas tiene practicas de futbol"

me explico? :P

Gracias nuevamente!!!