Delphi-PRAXiS
Seite 3 von 10     123 45     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)

Matze 30. Dez 2008 11:12

Re: Nächstes Datum errechnen
 
Dir fehlen immer noch jegliche Delphi- bzw. Programmier-Grundlagen, Larsi. Aber so ziemlich komplett.

Nimm dir eine Variable, die den Minimum-Wert repräsentiert und initialisiere diese mit dem Startwert deiner Liste. Gehe alle Werte in einer Schleife durch, vergleiche sie und weise der Variablen immer den aktuell geprüften Wert zu, sofern dieser kleiner ist, als der Variablenwert.

Fertigen Code bekommst du von mir definitiv keinen.

Gruß

Edit: Oh, da war einer schneller.

Larsi 30. Dez 2008 11:15

Re: Nächstes Datum errechnen
 
Ist das so richtig: :oops: ?

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;
if k < Listview1.items.count - g then
k := Listview1.items.count - g;
end;

Matze 30. Dez 2008 11:17

Re: Nächstes Datum errechnen
 
Hast du Deddys Beitrag gelesen?

Gehe den Source doch einmal selbst genau durch und frage dich, was du da machst bzw. was du da kopiert hast. Was macht das hier denn:

Delphi-Quellcode:
StrToDate(DateToStr(Now))
Wofür nutzt du überhaupt "g"?

Larsi 30. Dez 2008 11:18

Re: Nächstes Datum errechnen
 
Zitat:

Zitat von Matze
was du da kopiert hast.

Wieso kopiert? Der gesamte Code stammt von mir.

Matze 30. Dez 2008 11:22

Re: Nächstes Datum errechnen
 
Um ehrlich zu sein, glaube ich dir das. Dann wirst du ja umso besser wissen, wieso du das gemacht hast. Ich weiß es nämlich nicht, denn das, worauf ich dich hingewiesen hab und was du wieder vollkommen ignoriert hast, ist etwas unsinnig. Das würdest du aber sofort merken, wenn du nachvollziehen würdest, was du da gemacht hast.

Wie gesagt, gehe das einmal Schritt für Schritt durch, wenn du das nicht auf den ersten Blick siehst.

Verwende auch sinnvolle Variablennamen, das gehört zum ordentlichen Programmierstil und erspart dir viele Fehler.
Gerade der letzte Vergleich: Wenn k kleiner ist als das zu vergleichende Datum, dann weißt du k einen neuen Wert zu. Willst du das? Ich denke nicht.

DeddyH 30. Dez 2008 11:24

Re: Nächstes Datum errechnen
 
Wie sucht man denn das Minimum? Wenn Du diese Frage beantworten kannst, hast Du doch schon die Lösung.

Matze 30. Dez 2008 11:25

Re: Nächstes Datum errechnen
 
Oder wenn er die Beiträge hier lesen würde. Die Komplettlösung wurde in Schriftform bereits genannt, aber das interessiert ihn wohl nicht, da kein Code enthalten war. :(

Sharky 30. Dez 2008 11:26

Re: Nächstes Datum errechnen
 
Hai Larsi,

noch ein Tipp von mir. Halte Daten immer in einer Variable/Liste die dem Typ am besten entspricht. Ein Datum gehört also in eine Variable/Liste vom Typ TDate! Zum Anzeigen wandelst Du diese in Strings um; aber nie zum arbeiten/berechnen :!:

Larsi 30. Dez 2008 11:55

Re: Nächstes Datum errechnen
 
Ist der Ansatz besser?
Delphi-Quellcode:
var
  i: Integer;
  g: integer;
begin
g := 1;
for i := 0 to Listview1.Items.count - 1 do begin
if StrToDate(DateToStr(Now)) < StrToDate(Listview1.Items.Item[i].SubItems.Strings[0]) then begin
if StrToDate(Listview1.Items.Item[i].SubItems.Strings[0]) < StrToDate(Listview1.Items.Item[g].SubItems.Strings[0]) then
g := i;

end;
end;
ShowMessage(Inttostr(g));
end;
Also in einem kleinem Test von mir klappts aber vielleicht ist das auch nur Zufall.

Sharky 30. Dez 2008 11:59

Re: Nächstes Datum errechnen
 
Zitat:

Zitat von Larsi
Ist der Ansatz besser?...

Nein


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:38 Uhr.
Seite 3 von 10     123 45     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