Schaltjahr Berechnungsformel mit Fehler????



  • Hallo. Ich kam heute mal ins Grübeln....

    Was ich so alles gelesen habe gilt doch zur Berechnung ob eine Jahreszahl ein Schaltjahr ist oder nicht, folgende Formel:

    1. Jahreszahl Modulo 4 = 0 dann SCHALTJAHR
    2. Jahreszahl Modulo 4 = 0 UND Jahreszahl Modulo 100 = 0 dann KEIN SCHALTJAHR
    3. Jahreszahl Modulo 4 = 0 UND Jahreszahl Modulo 100 = 0 UND Jahreszahl Modulo 400 = 0 dann SCHALTJAHR

    Stimmt das so oder hab ich was vergessen?
    Wenn nicht ist in dieser Formel ein Fehler...

    Was ist mit dem Jahre 2100????



  • Such mal im Forum nach "istSchaltjahr"



  • Hi!

    bool isSchaltjahr(int j)
    {
    	return (j%4) ? 0
    	: (j%100) ? 1
    	: (j%400) ? 0 : 1;
    }
    

    Regel: Ein Jahr ist kein Schaltjahr, wenn die Jahreszahl nicht durch 4 teilbar ist. Ein Jahr ist ein Schaltjahr, wenn die Jahreszahl durch 4, nicht aber durch 100 teilbar ist. Ein Jahr ist ein Schaltjahr, wenn die Jahreszahl durch 4, 100 und durch 400 teilbar ist.

    Code-Hacker



  • Fragglechen schrieb:

    Stimmt das so oder hab ich was vergessen?
    Wenn nicht ist in dieser Formel ein Fehler...

    Was ist mit dem Jahre 2100????

    Wie du aus den vorhergehenden Postings siehst: Ja, deine Formel stimmt. 2100 ist kein Schaltjahr.



  • Genau das ist ja das Problem....

    Laut Formel ist 2100 kein Schaltjahr....

    Rechnet man aber mal per Finger, haben wir folgende Schaltjahre.

    2004, 2008, 2012, 2016, 2020, 2024, 2028, 2032, 2036, 2040, 2044, 2048, 2052, 2056, 2060, 2064, 2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096, 2100

    Womit doch eigentlich bewiesen ist das die Formel nicht stimmt. denn man kann 2100 durch 4 ohne Rest teilen und durch 100 aber nicht durch 400....



  • Fragglechen schrieb:

    Rechnet man aber mal per Finger, haben wir folgende Schaltjahre.

    2004, 2008, 2012, 2016, 2020, 2024, 2028, 2032, 2036, 2040, 2044, 2048, 2052, 2056, 2060, 2064, 2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096, 2100

    Du hast doch jetzt hoffentlich nicht in Viererschritten von 2004 bis 2100 gezählt? 🙄

    Es ist nunmal nicht alle vier Jahre ein Schaltjahr. 2100 ist keins.



  • Diese Ausnahme, daß durch 100 teilbare Jahre nicht "schalten", ist, wenn ich mich recht entsinne, eine Korrektur, da unser Kalender nicht so ganz auf die Erdumlaufbahn um die Sonne paßt. Wäre 100 nicht durch 4 teilbar, müßte man diese Ausnahmeregel ja gar nicht erst definieren.



  • Naja aber wenn 2096 doch ein Schaltjahr ist müsste doch 2100 auch eins sein... oder wann ist nach 2096 das nächste?



  • 2104



  • Ist die Regel nicht nur nach dem Gregorianischen Kalender?



  • Wo ist denn das Problem? Du hast es oben doch richtig gesagt. Man muß so vorgehen:
    Ist die Jahreszahl durch 4 teilbar? Gut, dann ist es ein Schaltjahr.
    Ist die Jahreszahl durch 100 teilbar? Uuups, dann ist es doch kein Schaltjahr.
    Ist die Jahreszahl durch 400 teilbar? Ah, also doch ein Schaltjahr.

    Jetzt klarer? 😉



  • Naja für mich wars bloss so das wenn 2096 ein Schaltjahr is das dann ja 2100 auch eins sein müsste. So kam ich drauf



  • pulle schrieb:

    Ist die Regel nicht nur nach dem Gregorianischen Kalender?

    Nach welchem Kalender, wenn nicht dem gregorianischen, rechnest denn du sonst?



  • Cocaine schrieb:

    Wo ist denn das Problem? Du hast es oben doch richtig gesagt. Man muß so vorgehen:
    Ist die Jahreszahl durch 4 teilbar? Gut, dann ist es ein Schaltjahr.
    Ist die Jahreszahl durch 100 teilbar? Uuups, dann ist es doch kein Schaltjahr.
    Ist die Jahreszahl durch 400 teilbar? Ah, also doch ein Schaltjahr.
    Jetzt klarer? 😉

    zur begründung:
    damals, als die kirche noch an der ergründung der welt interessiert war, hat sie festgestellt, daß der kalender total schief ging. der alte julius hate jedes 4. jahr zum schaltjahr gemacht.
    der trick war ja schonmal ganz gut. statt einfach 365 tage hatt jetzt jedes 4. jahr 366 tage. macht im durchschnitt pro jahr einen viertel tag mehr, also im durchschnitt pro jahr 365.25 tage.
    "super, julius", dachte sich gregor. aber meine hofastrologen bestimmen das astronautische jahr auf 365.2423 jahre (oder waren es 365,2424?). da geht uns ja pro jahrtausend ja mehr als eine woche durch die lapen.
    wie machen das mal ganz klug.

    [quote]Ist die Jahreszahl durch 4 teilbar? Gut, dann ist es ein Schaltjahr.[quote]
    macht durchschnitt von 365.25 tage pro jahr.

    Ist die Jahreszahl durch 100 teilbar? Uuups, dann ist es doch kein Schaltjahr.

    macht den durchschnitt um eine tag pro jahrhundert, also einen hundertstel tag pro jahr kleiner.
    365.24

    Ist die Jahreszahl durch 400 teilbar? Ah, also doch ein Schaltjahr.

    und noch einen vierhundertstel dazu.
    365.2425

    jo, mei, das ist ja ein ganz schön guter treffer.



  • Danke volkard. Ist zwar völlig logisch, aber hab mir noch gar keine Gedanken über das Warum gemacht. 🙂


Log in to reply