FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour mi funcion sumar horas
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
mi funcion sumar horas
Posted: Tue Jun 17, 2014 02:53 PM
Code (fw): Select all Collapse
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/
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: mi funcion sumar horas
Posted: Tue Jun 17, 2014 06:25 PM

Y como se usa?

saludos.

Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
Re: mi funcion sumar horas
Posted: Wed Jun 18, 2014 07: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/
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: mi funcion sumar horas
Posted: 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/
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: mi funcion sumar horas
Posted: Wed Jun 18, 2014 12:04 PM
Como se usa:

Code (fw): Select all Collapse
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/
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: mi funcion sumar horas
Posted: Wed Jun 18, 2014 04:47 PM

Gracias Goos,

lo voy a necesitar.

saludos.

Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: mi funcion sumar horas
Posted: Wed Jun 18, 2014 08:31 PM

me alegro!

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 128
Joined: Tue Jan 03, 2006 08:31 PM
Re: mi funcion sumar horas
Posted: Thu Jun 19, 2014 12:35 AM
Para obtener la diferencia entre horas

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

Saludos

Code (fw): Select all Collapse
/*-----------------------------------------------------------------------------------------------*/
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))
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: mi funcion sumar horas
Posted: 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/

Continue the discussion