KauboyKurt: Das aktuelle Jahr mit Schaltjahren berechnen

Ich hab mal Versucht das aktuelle Jahr mit Schaltjahren berechnen.
Ich hab hier ein Quelltext und eine Erklärung geschrieben.
Es wäre Nett, wenn ihr mal reinschauen könntet:

http://motheronspeed.mo.funpic.de/Z%e4hler%20Jahr%20(korekt%20+%20Schaltjahr)2.html

Vielen Dank im Voraus
KauboyKurt

  1. Hi KauboyKurt,

    Schaltjahre werden wie folgt berechnet:
    http://de.wikipedia.org/wiki/Schaltjahr#Die_Schaltregeln

    MfG
    Otto

  2. Hallo,

    http://motheronspeed.mo.funpic.de/Z%e4hler%20Jahr%20(korekt%20+%20Schaltjahr)2.html

    Naja, erst einmal: Wir kommst Du auf die Idee, dass jedes vierte Jahr ein Schaltjahr ist? Das stimmt zwar im julianischen Kalender, der wird aber spätestens seit 1918 (oder sowas um den Dreh) nirgendwo mehr verwendet (außer von der orthodoxen Kirche zur Festlegung des Osterfestes). Im gregorianischen Kalender ist die Schaltjahresregel komplizierter (alle Jahre, die sich durch 4 Teilen lassen, sind ein Schaltjahr, außer, sie sind durch 100 teilbar, dann sind sie keins, außer sie sind durch 400 teilbar, dann sind sie doch wieder eins).

    Erst einmal: Was genau willst Du berechnen? So wie ich das sehe, willst Du die anzahl der Jahre zwischen zwei Daten *abgerundet* berechnet haben.

    Dann erst einmal die Frage: Was genau verstehst Du unter einem Jahr?

    1) Die Jahreszahl des gregorianischen Kalenders
     2) Eine astronomische Größe (z.B. mittleres tropisches Jahr)
     3) Etwas anderes

    Fall 1) Über http://de.selfhtml.org/javascript/objekte/date.htm#get_full_year@title=getFullYear kannst Du die Jahreszahl beider Daten ermitteln und voneinander abziehen. Dann brauchst Du nur noch Monat, Tag, Stunde, Minute, Sekunde und Millisekunde der Daten vergleichen, um zu sehen, ob Du 1 abziehen musst (wäre z.B. der Fall, wenn das Anfangsdatum im April wäre, das Enddatum im Januar).

    Fall 2) Dazu musst Du die Länge der astronomischen Größe in Sekunden kennen (und zwar nicht in SI-Sekunden, sondern in Sekunden, die sich aus dem 86400ten Bruchteil der durchschnittlichen Länge eines Tages ergeben [1]) - dann kannst Du die Sekundendifferenz zwischen den beiden Daten berechnen und diese dann durch die Länge der astronomischen Größe teilen und abrunden.

    Fall 3) Dann müsstest Du erklären, was genau Du willst.

    Viele Grüße,
    Christian

    [1] JavaScript kennt keine Schaltsekunden, d.h. JavaScript arbeitet effektiv mit der Sekundenskala die sich aus eben dem 86400ten Bruchteil der mittleren Tageslänge ergibt - und eben nicht mit SI-Sekunden.

    --
    "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup