Diskussion:Gaußsche Wochentagsformel
fehler in der formel?
Bearbeitenwie wendet man die formel an wenn man den tag von dem datum 01.05.2000 berechnen will? nimmt mann dann für y = 0? bas datum 01.01.2000 stellt ja kein problem da, da man ja das jahr um 1 vermindern muss.
- Hallo, nur mal eine Frage: Woher kommt in der Beispielformel für den 12.01.2006 im Ausdruck A die 5 als 3.Summand - müßte dort bei 2006 nicht eine 6 stehen?
- Gert Vorrath storage_39636@gmx.de
- Das steht im Satz davor: "Da Januar und Februar die Zahlen 11 und 12 haben, muss für diese beiden Monate die Jahreszahl bei der Berechnung um 1 vermindert werden!"
- Der Witz is nur das Gauß sich geört hat. Versuche mit dieser Formel den heuteigen Tag herrauszufinden! Es wird nicht klappen.
- Ab den Jahr 2000 funktioniert die Formel nicht mehr ich habe das nachgeforscht. Auch ein Gauß kann sich irren ;)
Bei mir funktioniert die Formel auch nicht 100%ig... Wenn ich z.B. den 9.7.2004 eintippe, dann kommt als Wochentag Samstag heraus, es ist aber ein Freitag. Ist die Formel wirklich falsch?
bsp. mit dem oben genannten Datum:
A = d + [2.6 m – 0.2] + y + [y/4] + [c/4] – 2c
d = 9, m = 5 (da der 7. Monat der 5 auf der Skala entspricht), y = 4, c = 20
A = -8,2 = -8 (da die modulo Division nur mit ganzen Zahlen geht)
w = A mod 7 = -1
w = -1 + 7 (da bei negativen ergebnissen 7 dazugezählt werden muss)
w = 6 -> und das ist samstag!!!
- Die Formel stimmt meines Erachtens schon. In deinem Beispiel wurde keine Integerkoversion (fixes Abrunden) bei [2.6 m – 0.2] durchgeführt. Somit ergibt sich A = -9; A mod 7 ergibt dann -2. Weil negativ 7 hinzuaddieren, was 5 oder laut Tabelle Freitag ergibt!
- Weiters stimmt im Artikel der Hinweis nicht, dass 6 bei negativen Ergebnissen als Korrektur summiert werden muss. Es sollte 7 sein, wie obiges Beispiel u.a. beweist! Kann das jemand nachvollziehen, um den Artikel zu editieren? --Dywod 12:06, 1. Nov. 2006 (CET)
- Die Formel stimmt. Gauß war einer der größten Mathematiker, die jemals gelebt haben. Ihm einen Irrtum nachzuweisen, dürfte sehr schwer werden. Wir sollten erst einmal sicher sein, dass wir wirklich verstehen, was Gauß gemacht hat. Zu obigem Beispiel: A = -9 = 5 mod 7 = Freitag ist also völlig korrekt.
- Bei negativem A muss so oft 7 addiert werden, bis man erstmalig einen positiven Wert erhält. Das ist in der Definition des Teilens mit Rest enthalten, da der Rest stets postiv sein muss. Zu obigem Beispiel: -9 = -2*7 + 5, also -9 = 5 mod 7. Markus 18:56, 1. Apr. 2007 (CEST)
+7 scheint zuzutreffen
BearbeitenJe nachdem wie man wann mit den Nachkommastellen umgeht scheint auch die +6 Methode oft zu klappen, aber eben nicht immer. Die Konsequente Mißachtung von allem was hinterm Komma steht und +7 auf negative Zahlen scheint aber zu funktionieren. Wäre schön wenn sich dazu mal jemand äußern könnte der sich damit auskennt. Habe dies einstweilen geändert. Derjenige der die +6 Methode vertritt soll mir seine Rechnung mal bitte an den Beispielen 01.03.2000 und 01.03.1999 erläutern, danke.
- Man muss die Gaußklammer jedesmal korrekt berechnen, so wie es der Term beschreibt. Alle Rundungsalternativen dürften im Allgemeinen schlicht falsch sein. Man sollte in einem Lemma über die Gaußsche Wochentagsformel auch nicht private Rechenalternativen à la "Je nachdem, wie man mit den Nachkommastellen umgeht" thematisieren.
- Die Formel ist völlig korrekt. Aus dem Beweis kann man ersehen, dass man sie nicht vereinfachen kann. Markus 19:28, 1. Apr. 2007 (CEST)
Verbesserungen
BearbeitenDie Begründung für die Verminderung der Jahreszahl bei Januar und Februar ist eigentlich nicht richtig und unzureichend. Plausibler erscheint mir folgende Begründung: Da in der Tabelle die Monate ab März aufwärts bis 12 nummeriert werden, sind der Januar und der Februar sozusagen "ins nächste Jahr gerutscht". Das in der Formel zu betrachtene Jahr ist dann das vorige. Somit wird die Jahreszahl um ein vermindert. Diese Begründung wird noch dadurch bestärkt, da sie den Sonderfall der Jahrhundert- bzw. Jahrtausendgrenze berücksichtigt. Soll heißen, die Variablen c und y der Formel sind für die ersten beiden Monate im Jahr 2000 dann c=19 und y=99 und nicht c=20 und y=99. Leicht nachzuweisen, indem man die Wochentage des 31.12.1999 und des 01.01.2000 berechnet.
Der letzte Satz bzgl. des Addieren von 7 bei einem negativen Ergebnis (und damit die vorige Diskussion) erübrigt sich, wenn man folgende Formel für die Modulo-Rechnung konsequent anwendet, da sich dadurch keine negativen Ergebisse ergeben:
Beispiel:
Zu beachten ist dabei, dass gilt.
Man könnte dann noch deutlich machen, dass es sich in der Wochentagsformel bei den eckigen Klammern um Gaußklammern handelt.
Für welche Daten ist die Formel gültig?
BearbeitenMir fehlt der Hinweis, für welchen Zeitraum diese Formel gültig ist. Ich vermute, sie gilt erst ab der Einführung des gregorianischen Kalenders und wird auch nicht für alle Zeit gelten (wegen gewisser Rundungsfehler). --JS
- Die Wochentagsformel gilt vom Inkrafttreten des Gregorianischen Kalenders am 15.10.1582 an und prinzipiell solange, bis von diesen Regeln wieder abgewichen wird, also bis eine neue Kalenderreform vorgenommen wird. Ich habe das eingefügt.
- Rundungsfehler beeinflussen die Gültigkeit der Wochentagsformel in keiner Weise. Markus 18:56, 1. Apr. 2007 (CEST)
- Ich bin nicht unbedingt ein Mathematiker, aber die Formel für bis zum 4. Oktober 1584 müsste doch im Prinzip gleich sein, nur eben, dass es keine Schaltjahre gibt. Ausgehend davon, dass meiner Vermutung nach ein Mittwoch war, sollte das doch machbar sein. Leider kenne ich keine mathematische Formel, die 10 Tage abrechnen bzw. 3 Tage hinzurechnen und einige Kleinigkeiten (das y und c div 4) ändern kann, falls das Datum <= 15.10.1582 beträgt. Jemand eine Idee? --KEBA 15:04, 4. Mär. 2009 (CET)
Das Divisionszeichen /
BearbeitenDie Schreibweise [y div 4] etc. ist eine Spezialschreibweise der Informatiker, sie erschwert in einem allgemeinen Lexikon unnötig das Verständnis, zumal sie in Kombination mit der Gaußklammer fast missverständlich ist. Jeder normalgebildete Mensch versteht aber y/4 als "geteilt durch 4". Ich verstehe nicht, weshalb der Schrägstrich immer wieder beseitigt wird, und bitte um eine Begründung!
Den Hinweis auf die Gaußklammer habe ich eingefügt. Markus 19:28, 1. Apr. 2007 (CEST)
Die Schreibweise [y div 4] liefert immer einen ganzzahligen Wert, y/4 unter Umständen einen Bruch (Wenn y kein Vielfaches von 4 ist). Dies ist, analog zum Ausdruck [y mod 4], in der Mathematik ebenfalls definiert und damit keine Spezialschreibweise der Informatiker. [A.Reich] 19.10.2008 19:46
Von wem stammt die Gaußsche Wochentagsformel?
BearbeitenScheint eine lächerliche Frage zu sein. Ist es aber nicht. Habe vergeblich in Gauß' Gesammelten Werken gestöbert. Also: Entweder der Verfasser gibt eine originale Quelle an - also nicht vom Hörensagen abgeschrieben -, oder der Artikel heißt zukünftig: "Noch eine Wochentagsformel". Besser wäre, ihn ganz zu streichen, da die Gauß zugeschriebene Formel sich von der von C. Zeller kaum unterscheidet. Und die Zellersche ist belegt. Und dass Zeller Gauß' Schriften nicht gekannt hat oder "vergessen" hat, ihn zu zitieren, scheint mir äußerst unwahrscheinlich.
Um nicht in falschen Verdacht zu geraten: Ich halte Gauß für den größten Mathematiker aller Zeiten.
Die eigentliche Gaußsche Wochentagsformel
Tatsächlich gibt es eine Wochentagsformel von Gauß, und zwar für den Julianischen Kalender. Handschriftlich 1798 für das 18. Jahrhundert, in: Gauß Werke (1927) Bd. XI i, S. 206. Die Formel findet sich angewendet in den beiden Gaußschen Osterformeln (1800 / 1802) und lässt sich unschwer herstellen:
W = Wochentag, m = Monatskennzahl, d = Tag im Monat, j = Jahreszahl,
W = (m + d + 3 j + 5 j mod 4) mod 7
In der Mathematik blieb diese Formel ziemlich unbekannt, denn sonst hätte der sowjetische Mathematiker W. W. Sokolow ihre "gregorianische" Version 1966 nicht als neue Erfindung veröffentlichen können.
Das Besondere an der Gaußschen Formel: Neben den Elementaroperationen benötigt sie nur noch "mod", umgeht also die Bestimmung der Anzahl der jeweils verflossenen Schaltjahre. Keine einzige der elf von Butkewitsch / Selikson, Ewige Kalender (5. Auflage 1987) angegebenen Formeln (mit Ausnahme eben der von Sokolow) benutzt diesen Trick. Da "Mod"rechnung für den Kopfrechner einfacher ist als "Div"rechnung, ist die Gaußsche Formel von Interesse für Kopfrechner.
Die Gaußsche Formel ist ziemlich unbekannt, aber nicht etwa gänzlich. Heinz Bachmann, Kalenderarithmetik (1986) S. 80 und Michael Klews, Die Herleitung der Osterformeln etc. (2008) S. 71, benutzen sie, wenngleich beide ohne Klarstellung des Bezugs zu Gauß. Bachmann und Klews haben die Formel vermutlich aus Gauß (1800) herausgelesen ohne zu bemerken, dass sie es mit einer besonderen Erfindung von Gauß zu tun haben. In den Vor-Gaußschen Quellen konnte ich diese Formel nicht feststellen. Ihre Entwicklung setzt fortgeschrittene Kenntnissse im Umgang mit der Modulo-Rechnung voraus, nämlich Äquivalenzumformungen von Modulogleichungen, Fertigkeiten also, die in der traditionellen Komputistik nicht vorausgesetzt sind. Ausführlich: Ulrich Voigt, How to compute key Calendar Dates - Christian and Jewish - by mental Calculation, 2009 (freier download auf www.likanas.de). Ulrich Voigt 01:24, 26. Jan. 2010 (CET)
- Meines Wissens gibt es von Gauß nur eine Formel für den 1. Januar eines Jahres für den Gregorianischen Kalender. So steht es auch im englischen Wiki-Artikel "Determination_of_the_day_of_the_week". Diese habe ich jetzt in diesem Artikel beschrieben. Wenn jemand mehr über die in dieser Diskussion beschriebene Methode für den Julianischen Kalender weiß, könnte er sie hier noch ergänzen. Den bisherigen Inhaltdieses Artikell habe ich mit Wochentagsberechnung vereint, um die Redundanz zu beheben, siehe dortige Diskussion.--Afroehlicher (Diskussion) 21:21, 1. Jul. 2016 (CEST)
29/11 liefert falsches Ergebnis
Bearbeiten29/11 liefert für den Monat Dezember ein falsches Ergebnis.
[29/11*10 - 0,2] = 25 richtig
[2,6*10 - 0,2] = 26 falsch
Deshalb habe ich in der Formel 29/11 durch 2,6 ersetzt. [ ] soll hier in diesem Beitrag für die Gaußklammer stehen. --RaimundHermann3 11:03, 27. Dez. 2009 (CET)
Gauß, Zeller, oder was?
BearbeitenAuf welchen Wochentag fiel der 1. Februar 1900? Mit dem angegebenen Algorithmus erhält man:
d = 1
m = 12
[2,6 m – 0,2] = [2,6 *12 – 0,2] = [31,2 – 0,2] = [31,0] = 31
y = (1)00 – 1 = 99
[y/4] = [99/4] = [24,75] = 24
c = 19
[c/4] = [19/4] = [4,75] = 4
2c = 38
w = (1 + 31 + 99 + 24 + 4 - 38)mod7 = (121)mod7 = 2
Der Wochentag des 1. Februar 1900 ist mit dieser Formel also der Dienstag.
Auf der dargestellten Datei für die Ergebniskontrolle erhält man als Wochentag den Donnerstag. Das gleiche Ergebnis (Donnerstag) erhält man mit den folgenden Programmen:
http://wcarchive.cdrom.com/pub/simtelnet/msdos/fortran/weekday.for („Zellersche Kongruenz“), oder mit:
http://www.straub.as/java/basic/Lwochentag.html („Gaußsche Wochentagsformel“).
Die unterschiedlichen Ergebnisse treten im Zeitraum 1.1.1900 bis 31.12.2100 im Januar und Februar der Jahre 1900 und 2100 auf.
Übrigens: Die Fortran95 Funktion FLOOR(x) liefert im obigen Beispiel mit Windows7, 64bit, Fortran-Compiler von Silverfrost: FLOOR(2.6*12-0.2) = 30 ...
Wo liegt der Fehler?
-- 91.39.89.18 20:11, 19. Okt. 2011 (CEST)
2c = 36 , siehe Variable c, bei Januar und Februar 1900 ist c = 18 (nicht signierter Beitrag von 91.0.184.202 (Diskussion) 20:42, 24. Nov. 2011 (CET))
Gemäß Kapitel 1 Formel, soll c 'in den "gregorianischen" Jahren 1600,2000,2400... bei den Monaten Januar und Februar um eine (Stelle) vermindert' werden. Also bei den Jahren 1900 und 2100 nicht.
--91.39.95.85 19:30, 5. Dez. 2011 (CET)
Gregorianische Jahre=1600/2000/2400?
BearbeitenIch denke die "1600,2000,2400"-Einschränkung für die Berechnung von c ist falsch.
Teilbar durch 100 scheint richtig zu sein.
Beispiel:
der hier schon angesprochene 1.2.1900
Berechnung mit c Einschränkung bei 1600/2000/2400, also NICHT bei 1900:
w=(1+3+99+24+4-38) mod 4=(1+3+1+3+4+4) mod 7=2 (Dienstag, FALSCH)
Berechnung mit c Einschränkung bei Zahlen, die durch 100 teilbar sind, also auch bei 1900:
w=(1+3+99+24+4-36) mod 7=(1+3+1+3+4+6) mod 7=4 (Donnerstag, RICHTIG)
Zweites Beispiel:
15. Januar 2100
c berechnet wie in Formel, also kein Sonderfall weil nicht durch 400 teilbar:
w=(15+0+99+24+5-42) mod 7=(1+0+1+3+5+0) mod 7=3 (Mittwoch, FALSCH)
Mit c Korrektur weil durch 100 teilbar:
w=(15+0+99+24+5-40) mod 7=(1+0+1+3+5+2) mod 7=5 (Freitag, RICHTIG)
Da auch nirgends erklärt wird was genau die Gregorianischen Jahre sind denke ich das die Formel für c entsprechend angepasst werden sollte.
Aus dem Artikel:
c: Die beiden ersten Stellen der Jahreszahl - in den "gregorianischen" Jahren 1600,2000,2400... bei den Monaten Januar und Februar um eine vermindert (für 2007 wäre diese 20, für Januar/Februar 2000 also 19)
Besser:
c: Die beiden ersten Stellen der Jahreszahl, in durch 100 teilbaren Jahren (1600/1700/1800/1900/2000/2100...) bei den Monaten Januar und Februar um eins vermindert (für 2007 wäre diese 20, für Januar/Februar 2000 also 19)