Seite drucken

Osterrechner


 

 

Der JavaScript-Quelltext dazu sieht folgendermaßen aus:

 

 

var today, year, date, diff, days, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, a2, b2, c2, d2, e2, f2, g2, h2, i2, monat, j2, k2, l2, tag;
today = new Date();                    
// Das Objekt "today" wird erzeugt und das aktuelle Datum eingelesen
year = today.getYear();               
// Eigenschaft "Year" des Objektes "today" wird ausgelesen
if (navigator.appName == "Netscape")
year=1900 + year;                
// Datumsformatierung wird den Gecko-Browsern angepasst

do {
a = Math.floor(year/19); a = year%19; //1. Schritt: Das Jahr durch hundert und den Rest in das Einmachglas a
b = Math.floor(year/100);     //2. Schritt Jahr durch 100, Quotient nach b ...
c = year%100;       //3. Rest nach c
d = Math.floor(b/4);     //4. b durch 4, Ergebnis in Einmachglas d ...
e = b%4;        //5. Rest in Einmachglas e
f = b+8; f=Math.floor(f/25);   //6. b + 8 und durch 25, das Ergebnis in f
g = b-f+1; g = Math.floor(g/3);   //7. b - f + 1; Ergebnis durch 3
h = a*19; h=h+b+15; h=h-d-g; h=h%30;  //8. a * 19 + b + 15 - d - g; Ergebnis durch 30; Rest nach h
i = Math.floor(c/4);     //9. c durch 4; Ergebnis nach i
j = c%4;        //10. Rest nach j
k = e+i; k = k*2; k =k+32; k=k-h; k=k-j; k=k%7; //11. e + i; Ergebnis mal 2; + 32 - h - j; Ergebnis durch  7; Rest nach k
l = k*2; l = l+h; l = l*11; l = l+a; l = Math.floor(l/451); //12. k * 2 + h; Ergebnis mal 11 + a; Ergebnis durch 451; Ergebnis nach l
m = h+k; m=m+114; m2=l*7; m = m-m2; m3=Math.floor(m/31); //13. (h + k + 114)-(l*7) ; Ergebnis durch 31 ;
n = m%31; n= n+1;       //14. Rest nach n ; n+1
m = m3;         //15. Quotient nach m

Osterndiff=(Date.UTC(year, m-1, n)); // Differenz in Millisekunden zwischen berechnetem Osterdatum und 1970 berechnen
Heutediff=today.getTime();    // Differenz in Millisekunden zwischen dem heutigen Datum und 1970 berechnen
mstoostern=Osterndiff-Heutediff;  // Differenz in Millisekunden zwischen berechnetem Osterdatum und dem heutigen Datum berechnen
tagebisostern = Math.floor(mstoostern / (1000 * 60 * 60 * 24)); // Umrechnung des Ergebnises von Millisekunden in Tage
year = year +1;
} while (tagebisostern < -1);


//if (tagebisostern < -1)     // Wenn ein Tag nach berechnetem Osterdatum ist,
//           year = year +1; // Berechnung des nächsten Osterdatums

if (tagebisostern > 2)     // Wenn es mehr als 2 Tage bis Ostern sind,  
 document.write("Es sind noch " + (tagebisostern+1) + " Tage bis Ostern!"); // schreibe: "noch x Tage bis Ostern"
 else if (tagebisostern == 2)   // Wenn es noch genau 2 Tage bis Ostern sind,
document.write( " Heute ist Karfreitag!" ); // schreibe: "heute ist Karfreitag"
 else if (tagebisostern == 1)   // Wenn es noch genau 1 Tag bis Ostern ist,
                document.write("Morgen ist Ostern!"); // schreibe: "morgen ist Ostern"
    else if (tagebisostern == 0)  // Wenn es noch 0 Tage bis Ostern sind,
                document.write("Heute ist Ostern!"); // schreibe: "heute ist Ostern"
    else if (tagebisostern == -1)  // Wenn 1 Tag nach Ostern ist,
                document.write("Heute ist Ostermontag!"); // schreibe: "heute ist Ostermontag"