AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mit einer Zeitangabe rechnen

Ein Thema von StoRmtec · begonnen am 19. Sep 2006 · letzter Beitrag vom 19. Sep 2006
Antwort Antwort
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#1

Mit einer Zeitangabe rechnen

  Alt 19. Sep 2006, 14:21
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:
dbedit9.Text := dbedit6.Text;
t:=strtotime(dbedit9.Text) - strtotime(dbedit8.Text);
dbedit7.Text:=formatdatetime('hh:mm',t);
Wie kann ich das machen das er mir zwischen + und - unterscheidet.

Danke
  Mit Zitat antworten Zitat
hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Mit einer Zeitangabe rechnen

  Alt 19. Sep 2006, 14:26
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.
inde deus abest
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Mit einer Zeitangabe rechnen

  Alt 19. Sep 2006, 14:27
Schau dir mal MinutesBetween o.ä aus der Unit DateUtils an.

Timewerte sind Zeitpunkte und keine Zeitspannen und es gibt keine negativen Zeitpunkte.
Markus Kinzler
  Mit Zitat antworten Zitat
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#4

Re: Mit einer Zeitangabe rechnen

  Alt 19. Sep 2006, 14:30
Danke und wie kann ich dann so was mache das des funktioniert.

Wäre für eine Hilfe sehr dankbar.

Danke
StoRmtec
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Mit einer Zeitangabe rechnen

  Alt 19. Sep 2006, 14:35
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.
Markus Kinzler
  Mit Zitat antworten Zitat
hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Mit einer Zeitangabe rechnen

  Alt 19. Sep 2006, 14:52
Ich hätte es jetzt folgendermassen und relativ umständlich gemacht, sollte aber leicht nachzuvollziehen sein:

Delphi-Quellcode:

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;
Ansonsten:


Delphi-Quellcode:

var
  t: TDateTime;
begin
  dbedit7.Text := DateTimeToStr(DateUtils.MinutesBetween(StrToDateTime(dbedit8.Text), StrToDateTime(dbedit9.Text)));
end;
Hier müsstest du lediglich noch darauf achten das zuerst das jetzt kommt und dann das dann -.-
inde deus abest
  Mit Zitat antworten Zitat
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#7

Re: Mit einer Zeitangabe rechnen

  Alt 19. Sep 2006, 16:38
Hallo hirnstroem

Wenn ich das erste ausführe dann bekomme ich immer eine Fehlermeldung das " not valid time format
  Mit Zitat antworten Zitat
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#8

Re: Mit einer Zeitangabe rechnen

  Alt 19. Sep 2006, 16:52
Hat sich schon erledigt danke
Habe eine Zeile gelöscht

Danke
StoRMtec
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz