3 millones en foros del web

Registrarte Políticas Wiki 120segs Ayuda Iniciar sesion

Retroceder   Foros del Web > Programación para sitios web > ASP Clásico
Respuesta
 
Herramientas Desplegado
Antiguo 30-jun-2009, 23:23   #1 (permalink)
sjam7 (Reg: noviembre-2002)
 
3.510 Mensajes
Ubicación: Guadalajara, Mexico
Enviar un mensaje por MSN a sjam7 Enviar un mensaje por Yahoo  a sjam7 Enviar un mensaje por Skype™ a sjam7 sjam7 está desconectado
Sistema de horarios

Hola, estoy creando un sistema de horarios en el que negocios ponen su horario de trabajo y yo debo detectar si actualmente esta abierto, el problema es que a veces comienza en un dia y termina en otro, por ejemplo abren a las 4 de la tarde y cierran a las 3 de la mañana del dia siguiente, como podria hacer esta comprobacion? y como me aconsejarian grabar el dato en la base de datos (los datos del horario)

Muchas gracias de antemano
  Responder Citando
Antiguo 01-jul-2009, 00:04   #2 (permalink)
Moderador
AlZuwaga (Reg: noviembre-2002)
 
13.199 Mensajes
Ubicación: 34.517 S, 58.500 O
AlZuwaga está desconectado
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"
  Responder Citando
Antiguo 01-jul-2009, 00:34   #3 (permalink)
sjam7 (Reg: noviembre-2002)
 
3.510 Mensajes
Ubicación: Guadalajara, Mexico
Enviar un mensaje por MSN a sjam7 Enviar un mensaje por Yahoo  a sjam7 Enviar un mensaje por Skype™ a sjam7 sjam7 está desconectado
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...
  Responder Citando
Antiguo 01-jul-2009, 06:47   #4 (permalink)
 
4 Mensajes
NegroRC está desconectado
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
  Responder Citando
Antiguo 01-jul-2009, 13:30   #5 (permalink)
sjam7 (Reg: noviembre-2002)
 
3.510 Mensajes
Ubicación: Guadalajara, Mexico
Enviar un mensaje por MSN a sjam7 Enviar un mensaje por Yahoo  a sjam7 Enviar un mensaje por Skype™ a sjam7 sjam7 está desconectado
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?
  Responder Citando
Antiguo 01-jul-2009, 13:30   #6 (permalink)
Moderador
u_goldman (Reg: noviembre-2002)
 
7.735 Mensajes
u_goldman está desconectado
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-
  Responder Citando
Antiguo 02-jul-2009, 21:15   #7 (permalink)
sjam7 (Reg: noviembre-2002)
 
3.510 Mensajes
Ubicación: Guadalajara, Mexico
Enviar un mensaje por MSN a sjam7 Enviar un mensaje por Yahoo  a sjam7 Enviar un mensaje por Skype™ a sjam7 sjam7 está desconectado
Respuesta: Sistema de horarios

goldman tu dices que maneje con la fecha completa? o no entendi bien?

viste mi post anterior al tuyo? escribimos al mismo tiempo
  Responder Citando
Antiguo 02-jul-2009, 22:17   #8 (permalink)
Moderador
AlZuwaga (Reg: noviembre-2002)
 
13.199 Mensajes
Ubicación: 34.517 S, 58.500 O
AlZuwaga está desconectado
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"
  Responder Citando
Antiguo 03-jul-2009, 03:33   #9 (permalink)
Moderador
u_goldman (Reg: noviembre-2002)
 
7.735 Mensajes
u_goldman está desconectado
Respuesta: Sistema de horarios

Cita:
Iniciado por AlZuwaga Ver Mensaje
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
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.

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-
  Responder Citando
Respuesta
No hay votos aún.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 12:37.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104