Einzelnen Beitrag anzeigen

Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#9

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

  Alt 8. Jun 2009, 15:47
Zitat von 0xF30FC7:
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.
mhm ... Also ein Supportanruf der länger als 24h Stunden dauert ist inakzeptabel für Anwender und Supportfirma und meines erachtens wird es in der Praxis nicht vorkommen.

Also für meine Zwecke brauche ich den Fall der Zeitumstellung nicht berücksichtigen, weil der Support nicht zwischen 2 oder 3 Uhr in der Nacht nicht aktiv ist.

Deine Anmerkungen sind zweifellos korrekt und danke für den Hinweis.

Aber für mein Vorhaben wäre dies wohl zuviel des guten

MfG f4k3
Sascha
  Mit Zitat antworten Zitat