Delphi-PRAXiS
Seite 2 von 10     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Nächstes Datum errechnen (https://www.delphipraxis.net/126657-naechstes-datum-errechnen.html)

mkinzler 30. Dez 2008 10:19

Re: Nächstes Datum errechnen
 
Zitat:

Alternativ kann man auch versuchen nach zu denken.
Warum das, wenn sich doch immer einer findet, der das für ihn macht :zwinker:

Bbommel 30. Dez 2008 10:22

Re: Nächstes Datum errechnen
 
Mein Vorschlag (ohne Sortieren): Du gehst die ganze Liste durch und betrachtest dabei ein Datum nur, wenn es größer oder gleich "heute" ist. Hast du so ein Datum gefunden, merkst du dir dessen ItemIndex und wie weit es von heute entfernt ist. Danach gehst du die Liste weiter durch und wenn du auf ein Datum triffst, dass zwar größer oder gleich "heute" ist, aber näher an heute als das bisher gemerkte, dann ersetzt du den bisher gemerkten ItemIndex durch den aktuellen und natürlich ebenfalls den Wert, in dem du dir merkst, wie weit das Ganze von heute entfernt ist. Den letzten Schritt wiederholst du bis zum Ende der Liste.

Die Laufzeit sollte linear sein und man muss die Items in der Liste nicht sortieren.

Nur Programmieren musst du das kleine Schleifchen noch selbst. ;)

Bis denn
Bommel

Hm, bin ich jetzt der Depp, der die Arbeit für ihn gemacht hat...? ;)

DeddyH 30. Dez 2008 10:27

Re: Nächstes Datum errechnen
 
Das wäre auch eine Möglichkeit, aber die muss auch erst einmal geschrieben werden ;)

Larsi 30. Dez 2008 10:34

Re: Nächstes Datum errechnen
 
Ok, dann habe ich nur noch zwei Fragen: Wie schaffe ich es nur Tag und Datum von so einem Datum: 01.01.1950 zu nehmen und wie kann ich daraus einen Integer machen oder kann man Objekte vom Date Typ auch einfach mit < und > vergleichen?

DeddyH 30. Dez 2008 10:37

Re: Nächstes Datum errechnen
 
TDate = TDateTime = double. Und wenn alle Einträge im Format "dd.mm.yyyy" sind, kann man das Jahr ja mit dem Copy-Befehl abschneiden.

mkinzler 30. Dez 2008 10:37

Re: Nächstes Datum errechnen
 
Was hast du bisher in delphi gemacht, dass du nicht einmal DecodeDate() kennst?
Welchen würde ein Datumstyp machen wenn man ihn vergleichen kann? Übrigens ist ein TDate(Time) ein Double

Larsi 30. Dez 2008 10:54

Re: Nächstes Datum errechnen
 
Ich habe das Jahr jetzt erstmal außen vor gelassen und mich der Schleife gewidmet. Ich habe es so versucht wie Bbommel gesagt hatte:

Also mein Ansatz sieht so aus:
Delphi-Quellcode:
var
  i: Integer;
  g: integer;
  k: integer;

begin
for i := 0 to Listview1.Items.count - 1 do begin
if StrToDate(DateToStr(Now)) < StrToDate(Listview1.Items.Item[i].SubItems.Strings[0]) then begin
g := i;
k := Listview1.items.count - g;
end;
Ich weiß, das ist noch lange nicht alles aber ich habe das Gefühl, dass ich eine falsche Schleife benutze, oder? Wenn ich jetzt mit g weitermache und prüfe ob es einen noch kleineren Eintrag gibt muss ich ganz viele for Schleifen machen. Welche Schleife ist da besser?

DeddyH 30. Dez 2008 10:59

Re: Nächstes Datum errechnen
 
Du brauchst doch nur das Minimum zu suchen. Übrigens:
Zitat:

Delphi-Quellcode:
StrToDate(DateToStr(Now))

:?:

Larsi 30. Dez 2008 11:07

Re: Nächstes Datum errechnen
 
Ich steht auf m Schlauch. Kann mir nicht bitte jemand sagen wie ich jetzt das Minimum hinkriege? Es ist bestimmt ganz einfach aber ich komm nicht drauf. Ich habs jetzt wirklich versucht so gut ich konnte. :(

Klaus01 30. Dez 2008 11:10

Re: Nächstes Datum errechnen
 
Stichworte:
- BubbleSort
- QuickSort

An dem einen Ende ist das Minimum am anderen ist das Maximum.
Minimum ist dann erreicht wenn alle anderen Werte größer sind.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 Uhr.
Seite 2 von 10     12 34     Letzte »    

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