Forum: Algorithmen, Datenstrukturen und Klassendesign
by kwhk,
1. Jun 2013
Das klappt auch bei meinem Delphi 7 wunderbar, man kann sogar eine negative Anzahl Wochen eingeben, um im Kalender rückwärts zu rechen.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by kwhk,
31. Mai 2013
Die Kalenderwoche zu einem Datum zu ermitteln war nicht die ursprüngliche Aufgabe, sondern zu Woche/Jahr eine Anzahl Wochen zu addieren, um wieder Woche/Jahr zu erhalten. Dabei können die Anzahl Wochen auch mehrere Jahre (mit und ohne Schaltjahre) sein, z.B. um S21 oder BER fertigzustellen.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by kwhk,
30. Mai 2013
Die Uses-Klausel an der richtigen Stelle habe ich bereits eingebaut (dank diesem Forum !).
Jetzt sieht es schon etwas besser aus, ist aber immer noch fehlerbehaftet, weil die Funktion YearOf(dt) zwar das richtige Jahr zum Datum liefert, dieses Jahr gehört aber nicht zur Woche.
Test: Woche 52/2013 + 1 Woche => ergibt als Datum den 30.12.2013 (ist ok) und als Woche 01 (auch ok) aber als Jahr...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by kwhk,
30. Mai 2013
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;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by kwhk,
30. Mai 2013
Ganz so einfach ist das nicht, schon deshalb nicht, weil der 01.01.jjjj nicht unbedingt der Beginn der Woche 1 des Jahres jjjj sein muss. 2014 beginnt die Woche 1 am 30.12.2013, zumindest in Deutschland, wenn man sich mal darauf reduziert.
Die Woche 1 in Deutschland ist die, die den ersten Donnerstag enthält. http://de.wikipedia.org/wiki/Woche
Die Woche 1 in den USA ist die, die den 1. Januar...