Hallo,
eigentlich ist das doch "nur" ein bisserl Rechenarbeit. Eventuell hilft dasda ja:
Delphi-Quellcode:
procedure Wochenrechner;
var
dt : TDateTime;
cw1 : Integer;
Wochen : Integer;
cw2 : Integer;
Jahr : Integer;
begin
cw1 := StrToInt(edCW1.Text); // im Beispiel 52
cw1 := cw1 * 7; // Ergibt die Anzahl Tage für 52 Wochen.
dt := StrToDate('01.01.') + StrToInt(edYear.Text); // im Beispiel 2013
dt := dt + cw1; // Ist das Datum der 52. Woche.
Wochen := StrToInt(edWochen.Text); // im Beispiel 6
Wochen := Wochen * 7; // Ergibt die Anzahl Tage für 6 Wochen.
dt := dt + Wochen; // Zum Datum der 52 Wochen entsprechende Anzahl Tage hinzuzählen.
cw2 := WeekOfTheYear(dt); // Die Woche des errechneten Datums ermitteln.
Jahr := YearOf(dt); // Das Jahr des errechneten Datums ermitteln.
edCW2.Text := IntToStr(cw2);
edYear.Text := IntToStr(Jahr);
end;
Ist ungetestet mal einfach so dahingedaddelt.
Oder ein bisserl kürzer:
Delphi-Quellcode:
var
dt : TDateTime;
begin
dt := StrToDate('01.01.') + StrToInt(edYear.Text)
+ (StrToInt(edCW1.Text) + StrToInt(edWochen.Text)) * 7;
edCW2.Text := IntToStr(WeekOfTheYear(dt));
edYear.Text := IntToStr(YearOf(dt));
end;
Latürnich auch nicht getestet.