Hi zusammen
Ich habe vor vielen Jahren einen Kalender programmiert und dachte mir, ich müsse den nur ein kleines bisschen Anpassen - aber Pustekuchen!! Statt nun die damaligen Strukturen umzubauen, schreib ich mir besser eine neue Prozedur, die sich aus Teilen aus DateUtils logisch - und wahrscheinlich mit weniger Code - aufbaut.
Und so begine ich, indem ich den Jahresbegin als TDateTime hole. Davon will ich nun auf die aktuelle Woche und deren begin zugreifen
Delphi-Quellcode:
procedure TCompletYear2Frame.VerticalMonths;
var i,j,k,Nr,x,y,ZV : Integer; Jahr,Woche: Word;
LToday : String;
LYearDate, WoStart,Datum:TDateTime;
begin
LYearDate := StartOfTheYear(Date);
Nr := WeekOfTheYear(LYearDate);
// WeekofTheYear gibt einen Integer für die Wochennummer(?) zurück, der in 'Nr' gespeichert wird.
WoStart := StartOfTheWeek(NR);
// So, wie ich die Help verstanden habe, gibt StartOfTheWeek das Anfangsdatum der abgefragten Woche zurück
// WoStart müsste demnach das Start-Datum der Woche enthalten
Showmessage('LYearDate := ' + DatetoStr(LYearDate) + sLineBreak +
'WeekOfTheYear := ' + IntToStr(Nr) + sLineBreak +
'WoStart := '+ DateToStr(WoStart));
end;
Und das kommt dabei heraus:
Zitat:
LYearDate := 01.01.2020
WeekOfTheYear := 1
WoStart := 25.12.1899
[OK]
Was, zum ..., mache ich falsch?
Gruss
Delbor