Moin, Moin ...
Du hast ein Problem in dem du nur mit Uhrzeiten rechnest. Gerade bei Uhrzeiten mit Datumssprung musst du aber genau diese 24h wieder abziehen !!
Sprich: 20:00 Uhr - 06:00 Uhr würden 14 Stunden ergeben!
Alternative: Wenn möglich solltest Du Datum
und Uhrzeit bei der Berechnung mit einbeziehen, dann hast Du o.g. Probleme nicht. Hast Du das Datum nicht zur Verfügung kannst Du aber auch wenn ein Datumssprung vorliegt, einfach rechnen 24 Stunden - 14 Stunden = 10 Stunden
Delphi-Quellcode:
procedure TForm1.BerechneClick(Sender: TObject);
var Start, Ende, Gesamt: TDateTime;
begin
Start:= StrToTime('20:00'); // gleiches Datum
Ende:= StrToTime('6:00'); // gleiches Datum
if Ende < Start then // Datumssprung
Ende:= Ende +1; // also EndDatum um einen Tag verschieben
Gesamt:= (start - ende); // jetzt können wir rechnen :o)
Label1.Caption:= TimeToStr(Gesamt);
end;
Da ich selber schon eine Dienstplanverwaltung programmiert habe weiss ich was Du noch an Arbeit vor dir hast
Gruss Mario
PS: Kleiner Tipp, Tagesgesamtabreitszeiten und Überstunden immer in Minuten umrechnen - erspart viel Ärger beim addieren Jahresarbeitszeiten und gesamtüberstunden