Einzelnen Beitrag anzeigen

LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

AW: Den letzten Donnerstag eines Monats

  Alt 8. Dez 2017, 17:33
Ohne Datenbank vielleicht so

Delphi-Quellcode:
procedure LastThursday(Date: TDate); overload;
begin
 LastThurday(DateUtils.YearOf(Date), DateUtils.MonthOf(Date));
end;

procedure LastThursday(Year, Month: Word); overload;
var
 i, tmp, Day, DaysMonth: Integer;
begin
 DaysMonth := DaysInAMonth(Year, Month);
 Day := DaysMonth;

 while Day > 1 do // geht sicher auch kürzer, denn man braucht ja nur maximal 7 Tage ab Monatsende rückwärts zu prüfen
  begin
   tmp := (Day + 5) mod 7;

   if tmp = 5 then
    begin
     ShowMessage('Letzter Donnerstag im Monat: ' + FormatDateTime('dd/mm/yyyy', EncodeDate(Year, Month, Day)));
     Break;
    end;

   Dec(Day);
  end;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
 LastThurday(2017, 12);

 LastThurday(DateUtils.YearOf(Date), DateUtils.MonthOf(Date));

 LastThurday(Date);
end;
Zitat:
Eine Routine in Delphi gibt es wohl dazu nicht?
Jetzt schon.

Das geht noch 10x schöner und besser, das ist klar. Das ist dann aber Herr Raabes Job - der Code-Optimierer in Person.

Geändert von LTE5 ( 8. Dez 2017 um 17:43 Uhr)
  Mit Zitat antworten Zitat