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