Hallo zusammen!
Ich muß aus einem Datum herausfinden, der wievielte Wochentag es in dem Monat ist (Also der x. Sonntag im November zum Beispiel)
Dafür gibts laut hilfe ja die Tolle Funktion "DecodeDayOfWeekInMonth":
(Auszug aus der Hilfe)
Hilfe hat folgendes geschrieben: |
procedure DecodeDayOfWeekInMonth(const AValue: TDateTime; out AYear, AMonth, ANthDayOfWeek, ADayOfWeek: Word);
...DecodeDayOfWeekInMonth gibt zu einem angegebenen TDateTime-Wert den Wochentag und den Zähler für diesen Wochentag innerhalb des Monats zurück...
...ANthDayOfWeek ist der Zähler für den von AValue repräsentierten Wochentag. Wenn AValue beispielsweise den zweiten Dienstag im Monat repräsentiert, gibt ANthDayOfWeek den Wert 2 zurück... |
Folgenden Code habe ich mal zum Testen ausprobiert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.Button2Click(Sender: TObject); var jahr, monat, tag, woche:word; begin DecodeDayOfWeekInMonth(Now,jahr,monat,tag,woche); with memo1 do begin; clear; lines.append(floattostr(jahr)); lines.append(floattostr(monat)); lines.append(floattostr(tag)); lines.append(floattostr(woche)); end; end; |
Als Ergebniss bekomme ich für Heute (Sonntag, 23.11.2008) folgendes raus:
Jahr : 2008
Monat: 11
Tag : 0 (= Nullter Sonntag im Monat)
Woche: 7 (= 7. Tag in der Woche-> Sonntag)
Klappt es bei anderen oder hab ich da in dem Code was falsch gemacht??
Gruß
Torsten