Hier eine simple Prozedur zur Errechnung von Arbeitszeit.
Man übergibt das StartDatum und StopDatum im PB Date Format und die Pausenzeit in Minuten.
Sollte das Ergebnis im Minusbereich sein, gibt die Prozedur eine 0 zurück.
Ansonsten eine effektive Arbeitszeit in Industriezeit Format. (Bsp.: 45 Min. wären 0,75),
jeder der mal Stundenzettel ausgefüllt hat wird das kennen

Das Ergebnis wird übrigens nicht gerundet. Die Formel zur Industrieminute kommt von : http://de.wikipedia.org/wiki/Industrieminute
Lange Rede kurzer Code :
Code: Alles auswählen
Procedure.f ArbeitsZeit(StartDatum, StopDatum, PausenMinuten = 0) ; Berechnet Arbeitszeit in IndustrieZeit
Protected Std, Min, Sek, Effektiv, Result.f = 0
Effektiv = StopDatum - AddDate(StartDatum, #PB_Date_Minute, PausenMinuten)
If Effektiv > 0
Min = Effektiv / 60 : Sek = Effektiv % 60 : Std = Min / 60 : Min = Min % 60
Result = Std + Min/60 + Sek/3600
EndIf
ProcedureReturn Result
EndProcedure
; --- Beispiel
Start = Date(2013, 10, 24, 7, 0, 0) ; Arbeitsbeginn 24.10.2013 um 7:00 Uhr
Stop = Date(2013, 10, 24, 16, 30, 0) ; Arbeitsende 24.10.2013 um 16:30 Uhr
Pause = 45 ; Insgesamt 45 Minuten Pause
Debug ArbeitsZeit(Start, Stop, Pause)