mi funcion sumar horas

Post Reply
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

mi funcion sumar horas

Post by goosfancito »

Code: Select all

FUNCTION sumaHoras(aHoras)
   LOCAL nItem,;
         nHoras,;
         nMinutos,;
         nHoras1,;
         nMinutos1,;
         nTH,;
         nTM

   nHoras:= Val(SubStr(aHoras[1], 1, At(":", aHoras[1])))
   nMinutos:= Val(SubStr(aHoras[1], At(":", aHoras[1])+1))

   FOR nItem:= 2 TO Len(aHoras)
      nHoras1:= Val(SubStr(aHoras[nItem], 1, At(":",aHoras[nItem])))
      nMinutos1:= Val(SubStr(aHoras[nItem], At(":", aHoras[nItem])+1 ))

      nTM:= nMinutos + nMinutos1
      nTH:= nHoras + nHoras1

      DO WHILE  nTm >= 60
         nTH++
         nTm:= nTm - 60
      ENDDO

      nHoras:= nTH
      nMinutos:= nTm

   NEXT nItem

   RETURN (AllTrim(Str(nHoras)) + ":" + AllTrim(Str(nMinutos)))
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: mi funcion sumar horas

Post by sysctrl2 »

Y como se usa?

saludos.
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Re: mi funcion sumar horas

Post by Biel EA6DD »

Gracias por el aporte, por lo que veo recibe un array con elementos del tipo hora "hh:mm" y los suma.

De todas formas para operaciones con horas también tienes las funciones TimeToSec() y SecToTime() que pueden serte de ayuda.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

Re: mi funcion sumar horas

Post by goosfancito »

Si, es así como decis recibie un array.
Como no conozco mucha de las funciones para las horas prefiero pensar como hacer una propia que no andar buscando mucho. :)
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

Re: mi funcion sumar horas

Post by goosfancito »

Como se usa:

Code: Select all

vHorarios[01]:= "7:00"
vHorarios[02]:= "13:00"
vHorarios[03]:= "7:00"
vHorarios[05]:= "13:00"
vHorarios[07]:= "13:59"

msginfo( " Total de horas: " +sumaHoras(vHorarios))
Listo.
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: mi funcion sumar horas

Post by sysctrl2 »

Gracias Goos,

lo voy a necesitar.

saludos.
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

Re: mi funcion sumar horas

Post by goosfancito »

me alegro!
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
gabo
Posts: 117
Joined: Tue Jan 03, 2006 8:31 pm

Re: mi funcion sumar horas

Post by gabo »

Para obtener la diferencia entre horas

::oNE_Tiempo:cText:= SubStr( TimeDiff( ::oNE_HoraEntrada:Value, Time() ), 4 )

Saludos

Code: Select all

/*-----------------------------------------------------------------------------------------------*/
STATIC FUNCTION TimeDiff( cStartTime, cEndTime )
/*-----------------------------------------------------------------------------------------------*/
   RETURN TimeAsString( IF(cEndTime < cStartTime, 86400 , 0) + TimeAsSeconds(cEndTime) - TimeAsSeconds(cStartTime) )

/*-----------------------------------------------------------------------------------------------*/
STATIC FUNCTION TimeAsString( nSeconds )
/*-----------------------------------------------------------------------------------------------*/
   RETURN StrZero(INT(Mod(nSeconds / 3600, 24)), 2, 0) + ":" +;
      StrZero(INT(Mod(nSeconds / 60, 60)), 2, 0) + ":" +;
      StrZero(INT(Mod(nSeconds, 60)), 2, 0)

//------------------------------------------------------------------------------
STATIC FUNCTION TimeAsSeconds( cTime )
/*-----------------------------------------------------------------------------------------------*/
   RETURN VAL(cTime) * 3600 + VAL(SUBSTR(cTime, 4)) * 60 +;
          VAL(SUBSTR(cTime, 7))

 
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

Re: mi funcion sumar horas

Post by goosfancito »

yo use otra:

ElapTime

:)
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
Post Reply