Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#28

Re: Daten aller Donnerstage im Monat

  Alt 4. Jan 2010, 14:41
Hi,

Danke an alle und vorallem an mkinzler und omata die sich viel Mühe gemacht haben

Ich wollte das ursprünglich über SQL lösen weil ich diese Daten in FreeReport brauchte und es eben um einiges einfacher ist die Daten in SQL mitzuselektieren als sie in Delphi noch mühsam in die Datensätze einfzufügen. Habe mich allerdings jetzt doch dafür entschieden die Berechnung der Wochentage in Delphi durchzuführen. Für die Leute dies interessiert poste ich hier jetzt die Schlüsselfunktion die die Daten aller (z.B.) Donnerstage im Januar des aktuellen Jahres in eine TList<TDate> schreibt.

Delphi-Quellcode:
procedure AddWochentage(AMonat, AWochentag: Byte; ADestList: TList<Date>);
var start: TDateTime;
    i: Integer;
begin
  start := EncodeDate(YearOf(now),AMonat,1);
  for i := 0 to DaysInMonth(start) - 1 do
  begin
    if DayOfWeek(start)-1 = AWochentag then
      ADestList.Add(start);
    start := IncDay(start);
  end;
end;

// Aufruf:
var AList: TList<TDate>;
begin
  // .. AList erstellen ..
  AddWochentage(1,4,AList);
end;

// Ergebnis:
// - 07.01.10
// - 14.01.10
// - 21.01.10
// - 28.01.10
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat