AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Nächstes Datum errechnen

Ein Thema von Larsi · begonnen am 30. Dez 2008 · letzter Beitrag vom 2. Jan 2009
Antwort Antwort
Seite 6 von 10   « Erste     456 78     Letzte »    
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.303 Beiträge
 
Delphi 12 Athens
 
#51

Re: Nächstes Datum errechnen

  Alt 30. Dez 2008, 12:34
Zitat:
Jain, wenn er bei 0 anfangan würde, wäre dies der Fall. Zugleich repräsentiert das g den Index mit dem kleinsten Datum.
ja klar doch...geht sich bei 0 los.

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
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;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#52

Re: Nächstes Datum errechnen

  Alt 30. Dez 2008, 12:35
Und wenn der Wert 31.12.1950 ist?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#53

Re: Nächstes Datum errechnen

  Alt 30. Dez 2008, 12:35
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.
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#54

Re: Nächstes Datum errechnen

  Alt 30. Dez 2008, 12:36
Gehts immernoch.
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Oreaden

Registriert seit: 10. Nov 2008
60 Beiträge
 
#55

Re: Nächstes Datum errechnen

  Alt 30. Dez 2008, 12:38
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
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#56

Re: Nächstes Datum errechnen

  Alt 30. Dez 2008, 12:40
Zitat von Matze:
Nuja es geht schon, aber die Folgewerte, auch wenn sie das morgige Datum haben, die werden nie ausgespuckt, da 1950 kleiner ist.
Ich habe in meiner Listview jetzt z.b. folgendes stehen:

  • User1 31.12.1950
    User2 31.12.2008

Und der Code funktioniert. Was meinst du sonst mit diesem Beitrag?
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.546 Beiträge
 
Delphi 11 Alexandria
 
#57

Re: Nächstes Datum errechnen

  Alt 30. Dez 2008, 12:41
Nun poste ich meinen Ansatz doch einmal. Larsi kann sich ja dann selbst Gedanken machen, wieso auch dieser suboptimal ist.
Delphi-Quellcode:
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;
[edit] Schon wieder 4 Seiten? Das wird wohl langsam zur Gewohnheit bei Larsi-Threads [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#58

Re: Nächstes Datum errechnen

  Alt 30. Dez 2008, 12:45
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.
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#59

Re: Nächstes Datum errechnen

  Alt 30. Dez 2008, 12:47
Zitat von Larsi:
Ich habe in meiner Listview jetzt z.b. folgendes stehen:

User1 31.12.1950
User2 31.12.2008

Und der Code funktioniert. Was meinst du sonst mit diesem Beitrag?
Dein Code würde, wenn ich ihn richtig nachvollzogen habe, den 31.12.1950 zurückgeben, sofern du deinen Fehler mit dem falschen Startindex korrigiert hast. Sonst würde das zufälligerweise funktionieren. Setze den Startindex von g auf 0 und du wirst sehen, dass das 1950-Datum zurückgeliefert wird, g also 0 bleibt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.546 Beiträge
 
Delphi 11 Alexandria
 
#60

Re: Nächstes Datum errechnen

  Alt 30. Dez 2008, 12:47
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 10   « Erste     456 78     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.
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