Page 1 of 1
Compare two hours
Posted: Sun Mar 29, 2009 2:12 pm
by Marco Turco
Hi,
anyone know a function to compare two hours ?
Imagine you have cTime1="10.55" and cTime2="13.44",
is there a function to know if cTime1>cTime2 ?
Thanks in advance
Re: Compare two hours
Posted: Sun Mar 29, 2009 2:35 pm
by Armando
Marco:
Take a look at the TimeToSec function of xHarbour.
This function converts the time in seconds and then you can compare seconds against seconds
Regards
Re: Compare two hours
Posted: Sun Mar 29, 2009 2:37 pm
by pablovidal
Code: Select all
Local cTime1 := "10:00"
Local cTime2 := "13:20"
If TimeAsSeconds( cTime1 ) <= TimeAsSeconds( cTime2 )
....
EndIf
FUNCTION TimeAsSeconds( cTime )
RETURN VAL( cTime ) * 3600 + VAL( SUBSTR( cTime, 4 ) ) * 60 + VAL( SUBSTR( cTime, 7 ) )
Re: Compare two hours
Posted: Sun Mar 29, 2009 3:19 pm
by Rick Lipkin
Just a quick observation .. why can't you not change them to values and compare the numbers ?
Code: Select all
Imagine you have cTime1="10.55" and cTime2="13.44",
is there a function to know if cTime1>cTime2 ?
Code: Select all
lOK := .F.
nTIME1 := VAL("10.55")
nTIME2 := VAL("13.44")
nDIFF := nTIME1 - nTIME2
IF nDIFF > 0
lOK := .T.
ELSE
lOK := .F.
ENDIF
RETURN(lOK)
On the other hand still as "char" cTime2 would always be greater than cTime1 as you have them defined .. am I missing something here ??
Rick Lipkin
Re: Compare two hours
Posted: Sun Mar 29, 2009 3:39 pm
by sygecom
For xHarbour:
MsgInfo(ElapTime( "10:55:00", "13:44:00" ))
Re: Compare two hours
Posted: Sun Mar 29, 2009 7:05 pm
by Marco Turco
Ok. I am using TimeToSec() for this special situation.
Thanks to all for the great support.
Re: Compare two hours
Posted: Tue Mar 31, 2009 10:10 am
by Silvio
Marco Turco wrote:Hi,
anyone know a function to compare two hours ?
Imagine you have cTime1="10.55" and cTime2="13.44",
is there a function to know if cTime1>cTime2 ?
Thanks in advance
Marco,
when I come back home Ican send you a function
( date1,ora1,date2,ora2)
I use it to rent beach services
Re: Compare two hours
Posted: Thu Apr 02, 2009 7:25 am
by Zupan Miran
I use this function:
Code: Select all
Function DRazlika(dStartDate,cStartTime,dEndDate,cEndTime)
Return (((dEndDate - dStartDate) * 86400) - TimeToSec(cStartTime)) + TimeToSec(cEndTime)
... and in PRG code is somethnig like this
Code: Select all
//*** End_Time, Start_Time are string ("12:15", "13:15")
dd2 :=alltrim(End_Time)
dd1 :=alltrim(Start_Time)
dd3 :=DRazlika(@StartDate,@dd1,@End_Date,@dd2) //*** Return dd3 in seconds
dd4 :=int(dd3/86400) //*** No of days
dd5 :=dd3-(dd4*86400)
dd6 :=int(dd5/3600) //*** No in hours
dd7 :=(dd5-dd6*3600)/60 //*** rest in minutes
...
...
@ row ,4 say "Result: "+str(dd4,2)+" days "+str(dd6,2)+" hours "+str(dd7,2)+" min"
Regards
Zupan Miran
Slovenia