FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour How to count time to time value
Posts: 866
Joined: Tue Oct 16, 2007 08:57 AM
How to count time to time value
Posted: Fri Nov 14, 2014 04:16 PM

Hi FWH users,

My customer want to count employee Overtime.
Ex. Working time
08:00~18:00

Overtime is 17:00 Over. so
Ex.
08:00~18:00( over 17:00 ) get 1 hour overtime charge.
13:00~02:00( over 17:00 ) get 9 hours .....
08:00~17:00(no over 17:00 ) get 0 hour

someone can help this?
Thanks a lot.

Best Regards,



Richard



Harbour 3.2.0dev (r2503251254) => Borland C++ v7.7 32bit

MySQL v8.0

Harbour 3.2.0dev (r2503251254) => Borland C++ v7.7 64bit
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: How to count time to time value
Posted: Fri Nov 14, 2014 04:59 PM
Richard,

Try this:

Code (fw): Select all Collapse
function test()

   local cTime2 := "18:00"
   local cTime1 := "08:00" 
   local nTime2 := Val( SubStr( cTime2, 1, 2 ) ) * 60 + ;
                   Val( SubStr( cTime2, 3, 2 ) ) * 60
   local nTime1 := Val( SubStr( cTime1, 1, 2 ) ) * 60 + ;
                   Val( SubStr( cTime1, 3, 2 ) ) * 60

   MsgInfo( ( ( nTime2 - nTime1 ) / 60 ) - 9 )

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 866
Joined: Tue Oct 16, 2007 08:57 AM
Re: How to count time to time value
Posted: Fri Nov 14, 2014 05:32 PM
Antonio Linares wrote:Richard,

Try this:

Code (fw): Select all Collapse
function test()

   local cTime2 := "18:00"
   local cTime1 := "08:00" 
   local nTime2 := Val( SubStr( cTime2, 1, 2 ) ) * 60 + ;
                   Val( SubStr( cTime2, 3, 2 ) ) * 60
   local nTime1 := Val( SubStr( cTime1, 1, 2 ) ) * 60 + ;
                   Val( SubStr( cTime1, 3, 2 ) ) * 60

   MsgInfo( ( ( nTime2 - nTime1 ) / 60 ) - 9 )

return nil


I try
cTime1:="18:00" , cTime2:="24:00" , I get -3 , Should be get 6
cTime1:="18:00" , cTime2:="03:00" , I get -24 , Should be get 9
cTime1:="13:00" , cTime2:="20:00" , I get -2 , Should be get 3
Best Regards,



Richard



Harbour 3.2.0dev (r2503251254) => Borland C++ v7.7 32bit

MySQL v8.0

Harbour 3.2.0dev (r2503251254) => Borland C++ v7.7 64bit
Posts: 512
Joined: Mon Oct 17, 2005 10:38 AM
Re: How to count time to time value
Posted: Fri Nov 14, 2014 08:10 PM

function test()

local cTime2 := "18:00"
   local cTime1 := "08:00"
local difference
   local nTime2 := Val( SubStr( cTime2, 1, 2 ) ) * 60 + ;
                   Val( SubStr( cTime2, 3, 2 ) ) * 60
   local nTime1 := Val( SubStr( cTime1, 1, 2 ) ) * 60 + ;
                   Val( SubStr( cTime1, 3, 2 ) ) * 60

difference = nTime2 - nTime1
if difference < 0
difference += 1440
endif

MsgInfo( difference / 60 )

return nil

Posts: 654
Joined: Fri Oct 21, 2005 05:54 AM
Re: How to count time to time value
Posted: Sat Nov 15, 2014 01:14 AM
Code (fw): Select all Collapse
#include "fivewin.ch"

FUNCTION test()

LOCAL cTime1   := "13:00" // 08:00 // 13:00 // 08:00
LOCAL cTime2   := "02:00" // 18:00 // 02:00 // 17:00
LOCAL cOutTime := "17:00"

*08:00~18:00( over 17:00 ) get 1 hour overtime charge.
*13:00~02:00( over 17:00 ) get 9 hours .....
*08:00~17:00(no over 17:00 ) get 0 hour

LOCAL difference

LOCAL nTime2 := Val( SubStr( cTime2, 1, 2 ) ) * 60 + ;
                Val( SubStr( cTime2, 3, 2 ) ) * 60
LOCAL nTime1 := Val( SubStr( cOutTime, 1, 2 ) ) * 60 + ;
                Val( SubStr( cOutTime, 3, 2 ) ) * 60

difference := nTime2 - nTime1

IF difference < 0
   difference += 1440
ENDIF

MsgInfo( difference / 60 )

RETURN nil


Please define cOutTime as the base time to count the Overtime .

By the way, your customer does not have a rule to check the minimum working hours to earn overtime ?

-Ramesh Babu P
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: How to count time to time value
Posted: Mon Nov 24, 2014 06:53 AM
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion