![]() |
Re: Nächstes Datum errechnen
Zitat:
Larsi: schaue dir noch mal meinen Code an und versuche zu verstehen was passiert. Wenn du möchtest kommentiere ich ihn noch mal. geprüft und für gut befunden :P
Delphi-Quellcode:
function NachstesDatum : TDate;
var MinDate: TDate; I: integer; begin MinDate:= Now; for I := 0 to ListView1.Items.Count - 1 do begin if StrToDate(Listview1.Items.Item[i].Caption) > Now then begin if MinDate = Now then begin MinDate:= StrToDate(Listview1.Items.Item[i].Caption); end else begin if (StrToDate(Listview1.Items.Item[i].Caption) < MinDate) then begin MinDate:= StrToDate(Listview1.Items.Item[i].Caption); end; end; end; Result:= MinDate; end; end; |
Re: Nächstes Datum errechnen
Und wenn der Wert 31.12.1950 ist?
|
Re: Nächstes Datum errechnen
Nuja es geht schon, aber die Folgewerte, auch wenn sie das morgige Datum haben, die werden nie ausgespuckt, da 1950 kleiner ist.
Edit: Ich weiß nicht welche Werte drinnen stehen. Er soll halt alle alten rausschmeißen, wenn er da welche drinnen hat. Davon, dass es eine suboptimale Lösung ist, braucht ihr mich nicht zu überzeugen. :stupid: |
Re: Nächstes Datum errechnen
Gehts immernoch.
|
Re: Nächstes Datum errechnen
Das Orakel ist mal wieder sprachlos, ach ja, das kommt schon öfters mal vor, da muß man sich nicht viel bei denken.
Für das nachvollziehen würde sich doch ein Papierkomputer eignen oder ein kleines Fluß-/Struktogramm das man mit Papier und Bleistift und ein paar Beispieldaten aufbauen kann. Dies nur vorab. Was ich mich allerdings frage, weshalb möchtest Du das ganze in einer LV sortieren und das ganze andere zeugs machen? Würde sich hier nicht eine kleine interne Liste dazu viel besser eignen, wo Du dann nur noch den Zeiger setzen müsstest. Dann hättest Du auch die Darstellung von der ganzen Verarbeitung getrennt und wärst viel flexibler und robuster. Schöne Grüße aus der Altjahreswoche OREADEN |
Re: Nächstes Datum errechnen
Zitat:
Und der Code funktioniert. Was meinst du sonst mit diesem Beitrag? |
Re: Nächstes Datum errechnen
Nun poste ich meinen Ansatz doch einmal. Larsi kann sich ja dann selbst Gedanken machen, wieso auch dieser suboptimal ist.
Delphi-Quellcode:
[edit] Schon wieder 4 Seiten? Das wird wohl langsam zur Gewohnheit bei Larsi-Threads :stupid: [/edit]
function GetNextDateIndex(const sl: TStrings): integer;
var minDate, aDate: TDate; i: integer; begin Result := -1; minDate := IncYear(StartOfAYear(YearOf(date))); for I := 0 to sl.Count - 1 do begin aDate := StrToDate(Copy(sl[i],1,6) + FormatDateTime('yyyy',date)); if (aDate >= date) and (aDate < minDate) then begin minDate := aDate; Result := i; end; end; end; |
Re: Nächstes Datum errechnen
Aber dein Code ist ja für TStrings und daher für ne Listview nicht geeigent. Gegen was muss ich den das ersetzen, dass ich es mit einer Listview machen kann.
|
Re: Nächstes Datum errechnen
Zitat:
|
Re: Nächstes Datum errechnen
Ich habe das mit einer Listbox probiert, da kann man einfach die Items übergeben. So musst Du halt eine Stringliste anlegen, mit den Subitems füllen und übergeben. Anschließendes Freigeben nicht vergessen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 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