Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Alle Freitage (https://www.delphipraxis.net/212158-alle-freitage.html)

wendelin 27. Dez 2022 18:07

Delphi-Version: 7

Alle Freitage
 
Hallo Delphi-Freunde/innen,

Meine Frage: Ich benötige das Datum aller Freitage im Format (YYYY-MM-DD) beginnend am 2012-08-16 bis Jahresende 2022.
Mit 'DayOfWeekGerman' (Delphi-Praxis) und dann 'IncDay' habe ich herausbekommen das der 1. Freitag ab o.g. Anfangs-Datum der
2012-08-17 war. Soweit sogut.
Wenn ich nun mit IncWeek arbeite und die Monatsgrenze überspringe gibt mir dann Delphi wieder das richtige Datum und den
richtigen Tag an. ?? Die gleiche Frage gilt auch für IncYear ??

Vielen Dank für Eure Antworten

Wendelin (Wolfgang)

himitsu 27. Dez 2022 18:24

AW: Alle Freitage
 
Was ist nun eigentlich das Problem?

Natürlich liefern IncDay (mit +7) und IncWeek immer genau den nächsten selben Tag in der folgenden Woche, also ebenfalls wieder einen Freitag.

Warum sollte es das denn nicht tun, nur weil es der nächste Monat ist?



Delphi-Referenz durchsuchenNthDayOfWeek
Delphi-Referenz durchsuchenDayOfTheWeek
Delphi-Referenz durchsuchenStartOfTheWeek / Delphi-Referenz durchsuchenStartOfAWeek
...

blawen 27. Dez 2022 18:27

AW: Alle Freitage
 
Zitat:

Zitat von wendelin (Beitrag 1516711)
Hallo Delphi-Freunde/innen,

Meine Frage: Ich benötige das Datum aller Freitage im Format (YYYY-MM-DD) beginnend am 2012-08-16 bis Jahresende 2022.
Mit 'DayOfWeekGerman' (Delphi-Praxis) und dann 'IncDay' habe ich herausbekommen das der 1. Freitag ab o.g. Anfangs-Datum der
2012-08-17 war. Soweit sogut.
Wenn ich nun mit IncWeek arbeite und die Monatsgrenze überspringe gibt mir dann Delphi wieder das richtige Datum und den
richtigen Tag an. ?? Die gleiche Frage gilt auch für IncYear ??

Vielen Dank für Eure Antworten

Wendelin (Wolfgang)

Hallo Wolfgang

Ich habe es nicht ausprobiert, allenfalls müsstest Du auf "DayOfWeek" oder ähnliches zurückgreifen (vermute aber mal nicht).

Theoretisch kannst Du es Dir aber auch einfach machen:
Delphi-Quellcode:
Var
  Datum : TDate;
begin
  Datum := StrToDate('17.08.2012');
  Repeat
    Memo1.Lines.Add(DateToStr(Datum));
    Datum := Datum + 7;
  Until Datum > StrToDate('31.12.2022');
end;

wendelin 27. Dez 2022 21:31

AW: Alle Freitage
 
Hallo,
danke für Eure Antworten.
Ich denke Ihr habt mir sehr geholfen.

Gruß Wendelin

generic 28. Dez 2022 21:33

AW: Alle Freitage
 
Zitat:

Zitat von wendelin (Beitrag 1516711)
Ich benötige das Datum aller Freitage im Format (YYYY-MM-DD) beginnend am 2012-08-16 bis Jahresende 2022.

Das Datum sollte in deinen Programm TDateTime/TDate vom Typ bleiben. Nur damit kann man "rechnen" und du hast kaum Genauigkeitsverluste.

Wenn du ein Datum in einen bestimmten Format brauchst, ist das ein Problem der Ausgabe-Schicht deiner Anwendung. D.h. nur zur Anzeige/Export etc. solltest du das Datum als String formatieren und dann ausgeben. z.B. mit DateFormat aus den SysUtils:
https://docwiki.embarcadero.com/Libr...FormatDateTime

In der Unit DateUtils findest du auch viel zum "rechnen":
https://docwiki.embarcadero.com/Libr...stem.DateUtils


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:10 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