Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Datum vergleich und ergänzen (https://www.delphipraxis.net/138590-datum-vergleich-und-ergaenzen.html)

chicky 13. Aug 2009 06:35


Datum vergleich und ergänzen
 
GUten Morgen,

Ich habe zwei Datumsangaben: z.B. 13.07.2009 12:40:00 Uhr und 15.07.2009 13:50:00 Uhr. W
ie kann ich die fehlenden Werte (alle 10 Minuten) dazwischen „auffüllen“/erhalten? Jemand eine Idee?

mkinzler 13. Aug 2009 06:46

Re: Datum vergleich und ergänzen
 
Es wurde deinem Alter Ego doch schon erklärt, das das keinen Sinn macht!

chicky 13. Aug 2009 06:50

Re: Datum vergleich und ergänzen
 
Ich wollte ja nicht wissen, ob es Sinn macht, sondern wie es gemacht werden könnte?

himitsu 13. Aug 2009 07:06

Re: Datum vergleich und ergänzen
 
du rechnest der ersten String "13.07.2009 12:40:00" in einen Wert um, mit dem man rechnen kann (z.B. TDateTime oder eines der anderen Formate)

machst das Selbe mit dem anderem Wert

und nun rechnest du solange 10 Minuten dazu, wie der (letze Wert - 10 Minuten)
kleiner ist, als dein aktuell Errechneter.

anse 13. Aug 2009 07:10

Re: Datum vergleich und ergänzen
 
Ich versteh nicht ganz was du machen willst, aber evtl. suchst du das hier aus der unit DateUtils:
Delphi-Quellcode:
uses DateUtils;
...
var
  zeit: TDateTime
begin
  zeit := StrToDateTime(Now);
  IncMinute(zeit, 10)
  ...

chicky 13. Aug 2009 07:56

Re: Datum vergleich und ergänzen
 
@ anse: Das sieht gut aus. Wie verhält sich incMinute, z.b bei 12:50:00? wird es zu 12:60:00 oder zu 13:00:00?

Bernhard Geyer 13. Aug 2009 08:02

Re: Datum vergleich und ergänzen
 
Zitat:

Zitat von chicky
@ anse: Das sieht gut aus. Wie verhält sich incMinute, z.b bei 12:50:00? wird es zu 12:60:00 oder zu 13:00:00?

Probier es doch aus. Aber da TDataTime ein Double-Wert ist kann kein fehlerhaftes Datumswert codiert werden.

Übrigens: 10 minuten kann du ach mit
Delphi-Quellcode:
MyWert := MyWert + 1 / 24 / 6;
erhalten.

chicky 13. Aug 2009 08:04

Re: Datum vergleich und ergänzen
 
Zitat:

Übrigens: 10 minuten kann du ach mit
Delphi-Quellcode:
MyWert := MyWert + 1 / 24 / 6;
erhalten.
Habe ich auch schon gefunden gehabt.Danke

chicky 13. Aug 2009 09:03

Re: Datum vergleich und ergänzen
 
Ist incMinute eigentlich "Schaltjahr fest"?

himitsu 13. Aug 2009 09:09

Re: Datum vergleich und ergänzen
 
Zitat:

Zitat von chicky
Ist incMinute eigentlich "Schaltjahr fest"?

ja, da schließlich TDateTime die Schaltjahre beachtet und ein ein Tageszähler ist.

anse 13. Aug 2009 10:40

Re: Datum vergleich und ergänzen
 
Vergiss alle Bedenken dass irgendeine Funktion die mit TDate(Time) Werten hantiert solche Werte wie 13:70 Uhr zurückliefert, Schaltjahre ignoriert oder sonstiges. TDateTime ist kein dummer String sondern ein Objekt was sich um all diese Probleme kümmert.

Sharky 13. Aug 2009 11:01

Re: Datum vergleich und ergänzen
 
Zitat:

Zitat von anse
... TDateTime ist kein dummer String sondern ein Objekt was sich um all diese Probleme kümmert.

So stimmt das aber nicht. Ein TDateTime ist richtig "dumm". Darin steht nämlich einfach nur eine Zahl die angibt welche Zeitspanne (Ganzzahlige die Tage, im Kommateil die Stunden) welche seit dem 30. 12. 1899 vergangen ist.
Erst die Datums und Zeitfunktionen berücksichtigen dann Schaltjahre usw.

anse 13. Aug 2009 16:52

Re: Datum vergleich und ergänzen
 
Richtig. Mir gefiel nur die Vorstellung besser dass diese Logik im TDateTime Objekt zuhause ist - jetzt muß ich damit klarkommen dass die einzelnen Funktionen redundante Logik enthalten :)

mkinzler 13. Aug 2009 17:22

Re: Datum vergleich und ergänzen
 
Aber wie gesagt gibt es dafür passende Funktionen. TDateTime hat aber auch noch den Vorteil unabhängig von den Systemeinstellunegn (Datumsformat usw.) zu sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 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