![]() |
Mit einer Zeitangabe rechnen
Hallo Leute
Ich hätte eine Frage. Und zwar bin ich gerade dabei ein Zeitprogramm zu machen und da bin ich jetzt auf was gestoßen wo ich nicht mehr weiter komme. Und zwar habe ich eine Ist Zeit und eine soll Zeit. Die ist Zeit soll von der Soll Zeit abgezogen werden das geht auch nur wenn ich unter der Soll Zeit bin soll er mir ein "minus" davor setzen. Bei mir rechnet er einfach aus und macht kein minus davor.
Delphi-Quellcode:
Wie kann ich das machen das er mir zwischen + und - unterscheidet.
dbedit9.Text := dbedit6.Text;
t:=strtotime(dbedit9.Text) - strtotime(dbedit8.Text); dbedit7.Text:=formatdatetime('hh:mm',t); Danke |
Re: Mit einer Zeitangabe rechnen
Vorher abfragen, welches Datum das aktuellere ist?
Wenn man mit Daten rechnen kann, kann man sie doch bestimmt auch vergleichen. Also wenn Datum1 > Datum2 ist dann muss Datum2 - Datum1 ja negativ sein und umgekehrt und in alle anderen Richtungen. |
Re: Mit einer Zeitangabe rechnen
Schau dir mal MinutesBetween o.ä aus der Unit DateUtils an.
Timewerte sind Zeitpunkte und keine Zeitspannen und es gibt keine negativen Zeitpunkte. |
Re: Mit einer Zeitangabe rechnen
Danke und wie kann ich dann so was mache das des funktioniert.
Wäre für eine Hilfe sehr dankbar. Danke StoRmtec |
Re: Mit einer Zeitangabe rechnen
Die Funktion MinutesBetween liefert dir den Unterschied der beiden Zeitwerte in Minuten zurück. mit DIV/MOD kannst du dise adnn in eine Stunden/Minuten darstellung umwandeln.
|
Re: Mit einer Zeitangabe rechnen
Ich hätte es jetzt folgendermassen und relativ umständlich gemacht, sollte aber leicht nachzuvollziehen sein:
Delphi-Quellcode:
Ansonsten:var t: TTime; begin if StrToTime(dbedit9.Text) > StrToTime(dbedit8.Text) then begin t := StrToTime(dbedit8.Text) - StrToTime(dbedit9.Text); dbedit7.Text := '-' + TimeToStr(t); end else if StrToTime(dbedit9.Text) < StrToTime(dbedit8.Text) then begin t := StrToTime(dbedit8.Text) - StrToTime(dbedit9.Text); dbedit7.Text := TimeToStr(t); end;
Delphi-Quellcode:
Hier müsstest du lediglich noch darauf achten das zuerst das jetzt kommt und dann das dann -.-var t: TDateTime; begin dbedit7.Text := DateTimeToStr(DateUtils.MinutesBetween(StrToDateTime(dbedit8.Text), StrToDateTime(dbedit9.Text))); end; |
Re: Mit einer Zeitangabe rechnen
Hallo hirnstroem
Wenn ich das erste ausführe dann bekomme ich immer eine Fehlermeldung das " not valid time format |
Re: Mit einer Zeitangabe rechnen
Hat sich schon erledigt danke
Habe eine Zeile gelöscht Danke StoRMtec |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz