Hallo RX3,
du willst einen Zeitraum von einem Zeitpunkt subtrahieren - das Ergebnis ist dann wieder ein Zeitpunkt. In deiner Musterrechnung gibst du aber ein Ergebnis an, welches weder das eine noch das andere ist, sondern eine Mischung aus beidem. Ist das wirklich dein Wunsch?
Ich habe dir die Routine aus dem von mir verlinkten thread einmal so abgeändert, dass sie dir diese Mischgröße ausgibt:
Delphi-Quellcode:
uses
Math,
DateUtils;
function DateTimeToStr3(dt: TDateTime; daySep: string): string;
var
d: Integer;
begin
d := Floor(dt); // Abstand in Tagen
dt := dt - d; // Uhrzeit am Zieltag
Result := Format('%d%s%s', [d, daySep, TimeToStr(dt)]); // Zeichenkette bilden
end;
procedure TDemoForm.TestButtonClick(Sender: TObject);
var
dt: TDateTime;
iSec, iDelta: Integer;
begin
iDelta := 50 * 3600; // Stunden in Sekunden umrechnen
dt := StrToTime('14:01:35'); // Uhrzeit im internen Format
iSec := SecondOfTheDay(dt); // auch in Sekunden umrechnen
iSec := iSec - iDelta; // Differenz bilden
dt := iSec / SecsPerDay; // wieder in internes Format umwandeln
ShowMessage(DateTimeToStr3(dt, 'd ')); // Kontrollausgabe
end;
Grüße vom marabu