Einzelnen Beitrag anzeigen

Benutzerbild von Xzeer
Xzeer

Registriert seit: 6. Jul 2007
106 Beiträge
 
#1

Kalenderwoche Verständisproblem

  Alt 3. Feb 2009, 15:38
Hallo,

Ich möchte mir eine Funktion schreiben, der man ein Datum übergibt und die die zugehörige Kalenderwoche ermittelt. Dabei möchte ich alles frei schreiben, also nicht auf irgendwelche Delphi Objekte zurückgreifen.

Gefunden habe ich zuerst diese Version:

Zitat:
Kalenderwoche = (TagDesJahres / 7) + 1;
if Kalenderwoche = 53 then Kalenderwoch := 1;
Zum berechnen der Variablen TagDesJahres benutze ich folgenden Code (Java):

Zitat:
public int berechneTagImJahr(int jahr, int monat, int tag){
int lmon = (monat +10) / 13;
return ((3055 * (monat + 2)) / 100 - 2 * lmon - 91 + (1 - (jahr - (jahr / 4) * 4 + 3) / 4 + (jahr - (jahr / 100) * 100 + 99) / 100 - (jahr - (jahr /400) * 400 + 399) / 400) * lmon + tag);
Diese Function ist von meinem Info Lehrerund funktioniert auch.

Wenn ich allerdings versuche die Kalenderwoche zu ermitteln kommt für z.b das heutige Datum KW 5 heraus. Das ist ja falsch.

Dann habe ich noch diese Version ausprobiert (Java):

Zitat:
public int berechneKalenderwoche(int jahr, int monat, int tag){
double a = Math.floor((14 - monat) / 120);
double y = jahr + 4800 - a;
double m = monat + (12 * a) - 3;
double jd = tag + Math.floor(((153 * m) + 2) / 5) + (365 * y) + Math.floor(y / 4) - Math.floor(y / 100) + Math.floor(y / 400) - 32045;
double d4 = (jd + 31741 - (jd % 7)) % 146097 % 36524 % 1461;
double L = Math.floor(d4 / 1460);
double d1 = ((d4 - L) % 365) + L;
return (int) Math.floor(d1 / 7) + 1;
}
Allerdings der gleiche Fehler...

Kann mir vielleicht jemand erklären, wie man die KW richtig ausrechnet?
Marvin
Xzeer
  Mit Zitat antworten Zitat