Page 1 of 1

hora1 > hora2 ? mi funcion

Posted: Sat Jun 21, 2014 8:09 pm
by goosfancito
Se aceptan mejoras.
Devuelve .t. si "hora1" es mayor a "hora2"
Uso:
esMayor("10:23", "23:20")

Code: Select all

FUNCTION esMayor(cHora1, cHora2)
   LOCAL nHora1, nHora2, nMinuto1, nMinuto2, nAt, lValue

   lValue:= .F.

   nAt      := At(":", cHora1)
   nHora1   := Val(SubStr(cHora1, 1, nAt))
   nMinuto1 := Val(SubStr(cHora1, nAt + 1))

   nAt      := At(":", cHora2)
   nHora2   := Val(SubStr(cHora2, 1, nAt))
   nMinuto2 := Val(SubStr(cHora2, nAt + 1))

   IF  nHora1 > nHora2
      // 21:20 y 20: 30
      lValue:= .T.
   ELSEIF nHora1 == nHora2
      // 20:46 y 20:41
      IF nMinuto1 > nMinuto2
         lvalue:= .T.
      ENDIF
   ENDIF

   RETURN (lValue)

Re: hora1 > hora2 ? mi funcion

Posted: Sat Jun 21, 2014 9:22 pm
by Manuel Valdenebro
goosfancito wrote:Se aceptan mejoras.
Devuelve .t. si "hora1" es mayor a "hora2"
Uso:
esMayor("10:23", "23:20")

lValue := IIF("10:20" > "23:20", .T., .F.)

Re: hora1 > hora2 ? mi funcion

Posted: Sat Jun 21, 2014 9:41 pm
by cmsoft
Hola goosfancito:
Como te indica Manuel, funciona perfecto. Siempre y cuando, el formato de la hora sea hh:mm como una cadena de texto.
Si las horas pueden venir en formato h:mm u hh:m (Ej: 9:30 o 11:1) ya cambia la cosa, y es apropiado hacer una función como la que has hecho, ya que como cadena de texto "9:30" es mayor que "11:23" pero la hora 11:23 es mayor que la hora 9:23.
Por lo que he visto de las consultas y soluciones que has estado posteando, estas haciendo algún sistema de control horario.
Ten en cuenta, que las horas, se reinician cada dia!! :D O sea que la hora 00:32 del dia 22/06/2014 es mayor que la hora 23:12 del dia 21/06/2014.
Lo que puedes agregarle a tu función es el agregado de la fecha de la hora. Esto te será muy útil si quieres hacer controles de horarios de entradas y salidas cuando los horarios son nocturnos y el ingreso es en un dia y la salida en el otro (horario de 22:00 a 06:00)
Solo es un comentario para tener en cuenta.

Re: hora1 > hora2 ? mi funcion

Posted: Sun Jun 22, 2014 11:04 am
by goosfancito
Gracias por los comentarios.
Si estoy haciendo una app de horarios, pero solo en un rango, no las 24 hs. voy a tomar en cuenta todo lo que me dicen. En mi caso como no me andaba como queria el tema del get y el cpicture para no perder tiempo pase de usar "00:00" a "0.0" y busque funciones y ni me imagine que algo tan sencillo como lo que me deci Manuel podía funcionar, estoy contra reloj con la app es por eso.

Buen comentario lo que leo, voy a tomerlo en cuenta.