Delphi-PRAXiS
Seite 4 von 10   « Erste     234 56     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)

DeddyH 30. Dez 2008 12:01

Re: Nächstes Datum errechnen
 
Zitat:

Zitat von Sharky
Zitat:

Zitat von Larsi
Ist der Ansatz besser?...

Nein

Kurz, knackig, korrekt :thumb:

Larsi 30. Dez 2008 12:07

Re: Nächstes Datum errechnen
 
Also das hilft mir jetzt weniger weiter. Ich habe jetzt mal 10 Einträge erstellt und mein Programm hat den richtigen erkannt.

DeddyH 30. Dez 2008 12:10

Re: Nächstes Datum errechnen
 
Na dann ist ja alles in Butter.

Missionar 30. Dez 2008 12:13

Re: Nächstes Datum errechnen
 
Moin, Moin Larsi,

wäre es Dir möglich, deinen Code etwas zu formatieren, so wie du den hinknallst, blickt keiner durch. Vermute Du wohl auch nicht.

Nix für ungut, wäre doch ein schöner Vorsatz für das neue Jahr, den Code vernünftig zu strukturieren.

DeddyH 30. Dez 2008 12:15

Re: Nächstes Datum errechnen
 
Außerdem hast Du immer noch nicht erklärt, was Du mit
Zitat:

Delphi-Quellcode:
StrToDate(DateToStr(Now))

eigentlich bezweckst.

Matze 30. Dez 2008 12:16

Re: Nächstes Datum errechnen
 
Ich glaube sogar, so blöd es klingt, Larsis Code funktioniert bis auf den Startindex:

Delphi-Quellcode:
var
  i: Integer;
  g: integer;
begin
  g := 1; // was das soll weiß nur Larsi, eine 0 könnte ich noch verstehen

  // er geht in einer Schleife alle Einträge durch ...
  for i := 0 to Listview1.Items.count - 1 do
  begin
    // ... prüft nach dem Konvertierungs-Gewurschtel von "Now" ob die Einträge in der Zukunft liegen ...
    if StrToDate(DateToStr(Now)) < StrToDate(Listview1.Items.Item[i].SubItems.Strings[0]) then
    begin
      // ... und dann, ob der Eintrag, der in der Schleife überprüft wird,
      // kleiner ist als der Index des Minimum-Eintrags (Index g) ...
      if StrToDate(Listview1.Items.Item[i].SubItems.Strings[0]) < StrToDate(Listview1.Items.Item[g].SubItems.Strings[0]) then

        // ... und setzt den neuen Min-Index falls der Listeneintrag kleiner ist
        g := i;
    end;
  end;

  ShowMessage(Inttostr(g));
end;
Was für eine Lösung, die ist reif für die Code-Library. :mrgreen:

Edit: Kommentare angepasst.

haentschman 30. Dez 2008 12:17

Re: Nächstes Datum errechnen
 
Zitat:

Die fehlen immer noch jegliche Delphi-Grundlagen.

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ß
Ok...quäl dich nicht weiter 8) ich habe heute meinen sozialen Tag. :thumb:


zu spät... noch eine Variante für die Code Libary :mrgreen:
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;
Vorraussetzung ist, daß dein Datum als Item steht und nicht als Subitem.
PS: wird kein Eintrag in der Zukunft gefunden kriegst du das "heutige Datum zurück.

Larsi 30. Dez 2008 12:18

Re: Nächstes Datum errechnen
 
@Sharky:

Jetzt wo ich ernsthaft selber versucht habe trotz meiner fehlenden Delphi Kenntnisse auf die Lösung des Problems zu kommen und wirklich mit meinem Delphi Latein am Ende bin hilft mir so ein Beitrag wie "Nein" nicht weiter. Sharky, als Moderator sollte dir das klar sein, das du mir damit nicht hilfst. Und da die Lösung zumindest bei einem Beispiel funktioniert bin ich noch mehr überfordert wenn man mir nicht mal sagt warum der Code falsch ist. Und wie ich jetzt sehe stimmt mein Code sogar. Wem fehlen hier die Delphi Kenntnisse?

@Alle:

Ich habe mir sehr wohl ALLE eure Beiträge doppelt durchgelesen und zu verstehen.


*kopfschüttel* :cry:

DeddyH 30. Dez 2008 12:18

Re: Nächstes Datum errechnen
 
Mit richtigen Geburtstagen würde das aber nicht funktionieren (es sei denn, es handelt sich um Säuglinge, die im aktuellen Jahr geboren wurden).

mkinzler 30. Dez 2008 12:21

Re: Nächstes Datum errechnen
 
Warte mal bis übermorgen :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:53 Uhr.
Seite 4 von 10   « Erste     234 56     Letzte »    

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