Thema: TDateTime

Einzelnen Beitrag anzeigen

Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#2

Re: TDateTime

  Alt 22. Jan 2006, 08:34
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
Mario
  Mit Zitat antworten Zitat