AGB  ·  Datenschutz  ·  Impressum  







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

DateTime-Subtraktionsproblem

Ein Thema von Dax · begonnen am 20. Dez 2004 · letzter Beitrag vom 21. Dez 2004
 
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: DateTime-Subtraktionsproblem

  Alt 20. Dez 2004, 16:04
Zitat von Dax:
Ich sitze hier schon seit ein paar Stunden an einem verzwickten Problem..

Ich habe zwei TDateTime-Werte, die ich subtrahieren will. Beim normalen Verfahen (dt1 - dt2) kommen aber leider fehlerhafte Werte. Die beiden Werte sind 20-12-2004 15:51 und 20-12-2004 16:00. Die Datums/Zeitdifferenz, die ich suche, ist offensichtlich 0-0-0 00:09. Allerdings sagt Delphi mir, die Datumsdifferenz sei 1899 Jahre

Wie kann ich nun die beiden Werte subtrahieren, dass 0-0-0 00:09 herauskommt?

PS: Ich brauche sowohl die Datumsdifferenz als auch die Zeitdifferenz..
Es gibt keine "Datumsdifferenz", sondern nur eine Differenz gemessen in Tagen und Bruchteilen von Tagen!!
Beispiel:
Delphi-Quellcode:
var
   dt1, dt2 : TDateTime;
   diff : Double;

   tage : integer;
   stunden : double;
begin
   diff := dt1 -dt2;

   ShowMessageFmt('Zeitdifferenz: %f Tage', [diff]);

   // man kann die Tage auch in Tage und Stunden zerbrechen:
   tage := trunc(diff);
   stunden := (diff - tage)*24.0;
   ShowMessageFmt('Zeitdifferenz: %d Tage & %f Stunden', [tage, stunden]);

   // man kann das Spiel weitertreiben und die Zeitdifferenz noch in Minuten und Sekunden aufbrechen
   // hausaufgabe :-)
end;
Wenn du eine Zeitdifferenz in Monaten und Jahren ausdrücken möchtest, kommst du schon in Schwierigkeiten;
denn wie lange soll der Monat sein (30 oder 31 Tage)?
Zeitdifferenzen zwischen 0.0 und 0.9999999999 kann man mit TimeToStr umwandeln,
bei grösseren (oder nagativen!!!) Differenzen muss man erst die ganzen Tage rausrechnen.
Delphi-Quellcode:
diff := Abs(diff);
tage := trunc(diff);
rest := int(diff);
   ShowMessageFmt('Zeitdifferenz: %d Tage & %s ', [tage, TimeToStr(rest)]);
Andreas
  Mit Zitat antworten Zitat
 


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 05:31 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