Muchas gracias de antemano
|
|
#1 (permalink) |
|
Sistema de horarios
Muchas gracias de antemano |
|
|
|
|
#2 (permalink) |
|
Moderador
13.199 Mensajes Ubicación: 34.517 S, 58.500 O
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Respuesta: Sistema de horarios
Si hora de apertura (16) es mayor que hora de cierre (3), entonces decidir
![]() Anque se me ocurre preguntarte ¿cómo catalogás a los comercios que están las 24 horas abiertos? (yo lo haría como abre:0 / cierra: 24) [y con lo anterior te doy una idea acerca de cómo yo almacenaría esa info]
__________________
Argentinos, "somos lo que somos" |
|
|
|
#3 (permalink) |
|
Respuesta: Sistema de horarios
cuando abren a las 10 por ejemplo y cierran a las 20 hrs pues no hay problema, hago una simple comparacion pero no capto como hacerlo cuando la segunda hora es mas chica que la primera pero del dia siguiente...
ademas algunos negocios tienen horarios diferentes en diferentes dias, aunque sacando el de un dia los demas seria igual... |
|
|
|
|
#4 (permalink) |
|
4 Mensajes ![]() |
Respuesta: Sistema de horarios
Sjam, se me ocurre que para el caso que planteas, ingreses 2 rangos de horario para ese negocio, es decir...
Negocio X Horario 1: de 16 a 24 Hs Horario 2: de 0 a 3 Hs De esa manera nunca te quedaria el horario de cierre con un numero mas chico que el de apertura y creo que seria mas facil comparar con la hora actual No se si puede ser util, un saludo |
|
|
|
#5 (permalink) |
|
Respuesta: Sistema de horarios
pues pudiera ser una opcion, yo habia pensado en poner a la segunda hora una trampilla de si pasa de las 12 de la noche aumentarle 24 para que si por ejemplo ponen que cierran a las 3 de la mañana en el sistema sean las 27hrs, obviamente solo para comprobacion, ya a la hora de desplegar la hora en pantalla le quito los 24 otra vez,... ;.S
a alguien se le ocurre alguna otra opcion? |
|
|
|
|
#6 (permalink) |
|
Moderador
7.735 Mensajes ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Respuesta: Sistema de horarios
Las horas en si no deberían ser problema si es que estás utilizando el tipo de dato fecha/hora pues como decía AZ:
12:00 AM = 0 horas 12:00 PM = 12 horas Pero el manejo para tí es transparente solo tienes que obtener la porción hora del campo fecha, la fecha puede ser cualquier defaul "1/1/1900" por ejemplo. Entonces tienes dos campos, hora de apertura y hora de cierre, y aquí aplicas las reglas del negocio. Respondiendo a lo que planteaba AZ, lo que yo haría para los negocios de 24 horas es tener la misma fecha y hora (la de defaul): 1/1/1900 12:00:00 AM Si sendos campos tienen esta misma hora, entonces son 24 horas, si no, tienen un horario de apertura y cierre. Obtienes la hora de dichos campos y tomas la fecha actual, creas una nueva fecha que la comparas con now() y listo. No se si entrarán a escena otras variables como diferentes husos horarios, pero esa ya es otra historia. Mis 0.02
__________________
Es mejor prender una vela por pequeña que sea, que maldecir las tinieblas. -Confucio- |
|
|
|
#8 (permalink) |
|
Moderador
13.199 Mensajes Ubicación: 34.517 S, 58.500 O
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Respuesta: Sistema de horarios
Si, dice que uses la fecha completa. Y me parece buena idea, pero justo anoche le vi un para problema (o al menos no le encontré solución)... veamos si puedo recrearlo. Al momento tenemos 3 posibilidades: Comercios que abren y cierran el mismo día. Los que abren un día y cierran al siguiente -pero trabajan menos de 24 horas corridas-. Y finalmente los que no cierran nunca.
- Para caso 1 (abierto de 8 a 18): campo_abre: 01/01/1900 08:00:00 campo_cierra: 01/01/1900 18:00:00 - Para caso 2 (abierto de 16 a 3 del día siguiente): campo_abre: 01/01/1900 16:00:00 campo_cierra: 02/01/1900 03:00:00 - Para caso 3 (abierto las 24 horas): campo_abre: 01/01/1900 00:00:00 campo_cierra: 01/01/1900 23:59:59 Tanto para caso 1 como caso 3, usando un between de la hora actual entre los campos abre y cierra te sirve. Pero le encuentro un problema al caso 2 (y justo eso es lo que te lleva a preguntar aquí)
Código:
if "01/01/1900" & hora_actual >= campo_abre AND "01/01/1900" & hora_actual <= campo_cierra then abierto() else cerrado() end if para hora_actual = 17:00:00 da abierto... OK para hora_actual = 15:00:00 da cerrado... OK para hora_actual = 02:00:00 da cerrado... OK Perdón, no dije nada... funciona
__________________
Argentinos, "somos lo que somos" |
|
|
|
#9 (permalink) |
|
Moderador
7.735 Mensajes ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Respuesta: Sistema de horarios
Cita:
Siendo un poco estrictos, para el caso dos, a mi me parecería que rompes un poco con la regla en la base de datos, quizás yo trataría de dejar la base de datos con la fecha por defecto de 1/1/1900 y mejor implementar la lógica en la aplicación.
Iniciado por AlZuwaga
Si, dice que uses la fecha completa....
- Para caso 2 (abierto de 16 a 3 del día siguiente): campo_abre: 01/01/1900 16:00:00 campo_cierra: 02/01/1900 03:00:00 Tanto para caso 1 como caso 3, usando un between de la hora actual entre los campos abre y cierra te sirve. Pero le encuentro un problema al caso 2 (y justo eso es lo que te lleva a preguntar aquí)
Código:
if "01/01/1900" & hora_actual >= campo_abre AND "01/01/1900" & hora_actual <= campo_cierra then abierto() else cerrado() end if Podrías hacer una condición para el caso 2 en que Si hora incial > hora final -> fecha_final = fecha_final + 1 dia Asi tampoco te haces problema a la hora del registro, pues solo registras horas. sjam: No te contesté después pues pensé que mi post aunque chocó con el tuyo contestaba la pregunta ![]() Salud
__________________
Es mejor prender una vela por pequeña que sea, que maldecir las tinieblas. -Confucio- |
|
![]() |
| Herramientas | |
| Desplegado | |
|
|