Page 1 of 1
mi funcion sumar horas
Posted: Tue Jun 17, 2014 2:53 pm
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)))
Re: mi funcion sumar horas
Posted: Tue Jun 17, 2014 6:25 pm
by sysctrl2
Y como se usa?
saludos.
Re: mi funcion sumar horas
Posted: Wed Jun 18, 2014 7:30 am
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.
Re: mi funcion sumar horas
Posted: Wed Jun 18, 2014 12:00 pm
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.
Re: mi funcion sumar horas
Posted: Wed Jun 18, 2014 12:04 pm
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.
Re: mi funcion sumar horas
Posted: Wed Jun 18, 2014 4:47 pm
by sysctrl2
Gracias Goos,
lo voy a necesitar.
saludos.
Re: mi funcion sumar horas
Posted: Wed Jun 18, 2014 8:31 pm
by goosfancito
me alegro!
Re: mi funcion sumar horas
Posted: Thu Jun 19, 2014 12:35 am
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))
Re: mi funcion sumar horas
Posted: Thu Jun 19, 2014 11:46 am
by goosfancito
yo use otra:
ElapTime