Thema: Delphi WeekofTheYear ?

Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

WeekofTheYear ?

  Alt 20. Nov 2020, 12:39
Delphi-Version: 10.4 Sydney
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
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat