FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour EtapTime me da un resultado no esperado.
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM

EtapTime me da un resultado no esperado.

Posted: Tue Jun 24, 2014 12:11 PM
Code (fw): Select all Collapse
CHORA1= "8:59" 
CHORA2 = "14:30" 
------------------------------------------------------------------------------* 
ElapTime(cHora1, cHora2) => "06:21:00"

Y deber铆a de ser 5:21

Solucion?
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM

Re: EtapTime me da un resultado no esperado.

Posted: Tue Jun 24, 2014 12:46 PM
Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM

Re: EtapTime me da un resultado no esperado.

Posted: Tue Jun 24, 2014 12:57 PM

bueno...
a construir otra funcioncita...

gracias Karina

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM

Re: EtapTime me da un resultado no esperado.

Posted: Tue Jun 24, 2014 11:59 PM
Hola Goosfancito....
Prueba con esto....
Code (fw): Select all Collapse
//----------------------------------------------------------------------------------------------------
Function QTiempo(cTime1, cTime2)
local nSec1, nSec2, nSec3, nHora, nMinu

IF EMPTY(cTime1) .OR. EMPTY(cTime2) .OR. VAL(SUBSTR(cTime2,1,2)) * 3600 + VAL(SUBSTR(cTime2,4,2)) * 60 + VAL(SUBSTR(cTime2,7,2)) = 0  
聽Return("")
EndIf

If VAL(SUBSTR(cTime1,1,2)) > VAL(SUBSTR(cTime2,1,2))
聽 cTime2 := STRZERO( VAL(SUBSTR(cTime2,1,2)) + 24,2 ) + SUBSTR(cTime2,3,6)
EndIf

nSec1 := VAL(SUBSTR(cTime1,1,2)) * 3600 + VAL(SUBSTR(cTime1,4,2)) * 60 + VAL(SUBSTR(cTime1,7,2))
nSec2 := VAL(SUBSTR(cTime2,1,2)) * 3600 + VAL(SUBSTR(cTime2,4,2)) * 60 + VAL(SUBSTR(cTime2,7,2))
nSec3 := nSec2 - nSec1

nHora := nSec3 / 3600
nSec3 := nSec3 - INT(nHora) * 3600
nMinu := nSec3 / 60
nSec3 := nSec3 - INT(nMinu) * 60

Return(STRZERO(nHora,2) + ":" + STRZERO(nMinu,2) + ":" + STRZERO(nSec3,2))
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM

Re: EtapTime me da un resultado no esperado.

Posted: Wed Jun 25, 2014 06:00 AM

Seg煤n dice el manual sobre Elaptime, sus dos par谩metros son 'Time() formatted character string'. La funci贸n ELAPTIME funciona perfectamente, siempre que los par谩metros sean correctos. En este caso, como los par谩metros no son correctos, lo que hay que arreglar son los par谩metros y no hacer una nueva funci贸n. Si queremos una aplicaci贸n eficiente y r谩pida, una de las reglas ser铆a usar las funciones del propio lenguaje y no reinventar la rueda.

Como el problema se genera por la necesidad de poner variables-horas con un s贸lo car谩cter, la soluci贸n podr铆a ser la siguiente:

elaptime ( fValiHora(cHora1), fValiHora(cHora2) )

FUNCTION fValiHora (cTime)

IF AT(':', cTime)=2
cTime:= '0' + cTime
ENDIF

RETURN cTime

Otra cosa es, como en otro hilo dijo Biel, cuando tratamos fechas y hora. Para eso si es necesario un nueva funci贸n.

Un saludo



Manuel
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM

Re: EtapTime me da un resultado no esperado.

Posted: Wed Jun 25, 2014 10:34 AM

Gracias a todos.
Ya me genere una funcion y me soluciona lo que necesito,
con respecto a lo que me decis Manuel, pienso que si la funci贸n entonces habr铆a que hacerla un poco mas flexible o por lo menos que
los pasos que me decis lo haga la propia funci贸n. Estar铆a bueno.

Gracias.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/

Continue the discussion