Einzelnen Beitrag anzeigen

Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Differenz zwischen zwei Zeitwerten im Format 'hh:nn:ss'

  Alt 8. Jun 2009, 16:27
Zitat von Kalfany:
warum nicht so?
Label1.Caption := FormatDateTime('hh:nn:ss', CallStartTime-Now());
Ganz einfach ... weil die Zeit dann nach 24h von vorne beginnt .
Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  DateUtils, SysUtils;

function GetTimeDifferenceAsString(StartTime, EndTime : TDateTime) : string;
var
  TimeDifferenceInSeconds : Integer;
begin
  TimeDifferenceInSeconds := SecondsBetween(EndTime, StartTime);
  Result := Format('%.2d:%.2d:%.2d',
    [TimeDifferenceInSeconds div 3600,
     TimeDifferenceInSeconds mod 3600 div 60,
     TimeDifferenceInSeconds mod 60]);
end;


begin
  writeln(GetTimeDifferenceAsString(Yesterday, Now));
  writeln(FormatDateTime('hh:nn:ss', Yesterday - Now));
  readln;
end.
Die Ausgabe bei mir im Moment:
40:24:08
16:24:08

Sobald ein Telefonat also länger als 24h dauert, wäre die Anzeige nicht korrekt. Ist für die Implementation hier evtl. nicht ganz so wichtig, aber irgendwann haben Informatiker auch mal gedacht 2 Byte reicht aus um das Jahr zu speichern ... .

EDIT:
Es gibt übrigens auch noch einen Sonderfall, den Du behandeln solltest. Und zwar die Zeitumstellung. Da kann es durchaus passieren, daß die Endzeit vor der Startzeit liegt.
Fridolin Walther
  Mit Zitat antworten Zitat