mi funcion sumar horas

mi funcion sumar horas

Postby goosfancito » Tue Jun 17, 2014 2:53 pm

Code: Select all  Expand view
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)))
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: mi funcion sumar horas

Postby sysctrl2 » Tue Jun 17, 2014 6:25 pm

Y como se usa?

saludos.
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 957
Joined: Mon Feb 05, 2007 7:15 pm

Re: mi funcion sumar horas

Postby Biel EA6DD » Wed Jun 18, 2014 7:30 am

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
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Re: mi funcion sumar horas

Postby goosfancito » Wed Jun 18, 2014 12:00 pm

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. :)
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: mi funcion sumar horas

Postby goosfancito » Wed Jun 18, 2014 12:04 pm

Como se usa:

Code: Select all  Expand view
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.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: mi funcion sumar horas

Postby sysctrl2 » Wed Jun 18, 2014 4:47 pm

Gracias Goos,

lo voy a necesitar.

saludos.
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 957
Joined: Mon Feb 05, 2007 7:15 pm

Re: mi funcion sumar horas

Postby goosfancito » Wed Jun 18, 2014 8:31 pm

me alegro!
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: mi funcion sumar horas

Postby gabo » Thu Jun 19, 2014 12:35 am

Para obtener la diferencia entre horas

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

Saludos

Code: Select all  Expand view

/*-----------------------------------------------------------------------------------------------*/
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))

 
gabo
 
Posts: 126
Joined: Tue Jan 03, 2006 8:31 pm

Re: mi funcion sumar horas

Postby goosfancito » Thu Jun 19, 2014 11:46 am

yo use otra:

ElapTime

:)
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 26 guests