340 likes | 716 Views
Algorithmen zur Zeitrechnung Dozent: Prof. Dr. Manfred Thaller Seminar: Re-usable Content in 3D und Simulationssystemen SoSe 2012 Referent: Marvin Liu. 1. Julianisches Datum (J D) 2. Julianischer Kalender 3. Gregorianischer Kalender 4. Islamischer Kalender 5. Jüdischer Kalender 6. Weiteres.
E N D
Algorithmen zur ZeitrechnungDozent: Prof. Dr. Manfred ThallerSeminar: Re-usable Content in 3D und SimulationssystemenSoSe 2012Referent: Marvin Liu
1. Julianisches Datum (J D) 2. Julianischer Kalender 3. Gregorianischer Kalender 4. Islamischer Kalender 5. Jüdischer Kalender 6. Weiteres Gliederung
Entspricht der Anzahl der Tage seit dem 1.1.4713 v. Chr. Wird für die Umrechnung zwischen zwei Kalendern benötigt Ermöglicht einfache Rechnungen durch Anwendung der Grundrechenarten, Integer- und Modulofunktionen → In höheren Programmiersprachen enthalten Zur Vermeidung von Rundungsdifferenzen sollten mit Reelle Zahlen doppelter Genauigkeit (min. 15 signifikante Stellen) gerechnet werden 1. Julianisches Datum (J D)
Der 1. Tag des J D war ein Montag, daher lässt sich aus dessen Rest mod 7 der Wochentag bestimmen → Mo = 0, Di = 1,... So = 6 1. Julianisches Datum (J D)
A = J D B = A + 1524 C = int((B – 122,1) / 365,25) D = int(365,25 * C) E = int((B – D) / 30,6001) Tag = B – D – int(30,6001 * E) + 0,5 Monat = ((E + 10) mod 12) + 1 Wenn Monat > 2 dann: Jahr = C – 4716 Sonst: Jahr = C – 4715 1. Umrechnung vonJ D zum Julianischen Kalender
A = 2452015 B = 2452015 + 1524 = 2453539 C = int((2453539 – 122,1) / 365,25) = 6717 D = int(365,25 * 6717) = 2453384 E = int((2453539 – 2453384) / 30,6001) = 5 Tag = 2453539 – 2453384 – int(30,6001 * 5) + 0,5 = 2,5 Monat = ((5 + 10) mod 12) + 1 = 4 Jahr = 6717 – 4716 = 2001 1. Beispiel: Umrechnung vonJ D zum Julianischen Kalender
Y = int((J D – 1867216,25) / 36524,25) A = J D + 1 + Y – int(Y / 4) B = A + 1524 C = int((B – 122,1) / 365,25) D = int(365,25 * C) E = int((B – D) / 30,6001) Tag = B – D – int(30,6001 * E) + 0,5 Monat = ((E + 10) mod 12) + 1 Wenn Monat > 2 dann: Jahr = C – 4716 Sonst: Jahr = C – 4715 1. Umrechnung vonJ D zum Gregorianischen Kalender
Y = int((2452015 – 1867216,25) / 36524,25) = 16 A = 2452015 + 1 + 16 – int(16 / 4) = 2452028 B = 2452028 + 1524 = 2453552 C = int((2453552 – 122,1) / 365,25) = 6717 D = int(365,25 * 6717) = 2453384 E = int((2453552 – 2453384) / 30,6001) = 5 Tag = 2453552 – 2453384 – int(30,6001 * 5) + 0,5 = 15,5 Monat = ((5 + 10) mod 12) + 1 = 4 Jahr = 6717 – 4716 = 2001 1. Beispiel: Umrechnung vonJ D zum Gregorianischen Kalender
Enthält im 4-jährigen Zyklus 3 Gemeinjahre mit 365 Tagen und ein Schaltjahr mit 366 Tagen Beginn der Kalenderrechnung am 1. Januar 45 v. Chr. bzw. J D = 1704987 2. Julianischer Kalender
J = Jahr des Julianischen Kalenders A = J mod 19 B = J mod 4 C = J mod 7 D = (15 + 19 * A) mod 30 E = (6 + 2 * B + 4 * C + 6 * D) mod 7 F = int(J / 4) G = int((B + 3) / 4) J D (0.Januar.J) = 1721057 + 1461 * F + 365 * B + G J D (Ostersonntag) = J D (0.Januar.J) + D + E – G + 82 2. Julianischer KalenderBerechnung vom 0. Januar und julianischem Ostersonntag zum J D
J = 2001 A = 2001 mod 19 = 6 B = 2001 mod 4 = 1 C = 2001 mod 7 = 6 D = (15 + 19 * 6) mod 30 = 9 E = (6 + 2 * 1 + 4 * 6 + 6 * 9) mod 7 = 2 F = int(2001 / 4) = 500 G = int((1 + 3) / 4) = 1 J D (0.Januar.J) = 1721057 + 1461 * 500 + 365 * 1 + 1 = 2451923 J D (Ostersonntag) = 2451923 + 9 + 2 – 1 + 82 = 2452015 2. Beispiel: Julianischer KalenderBerechnung vom 0. Januar und julianischem Ostersonntag zum J D
1. Bestimmung, ob Schaltjahr oder Gemeinjahr: - n. Chr. sind alle Jahre Schaltjahr, die ohne Rest durch 4 teilbar sind - v. Chr. die Jahre 1, 5, 9, etc. 2. Werte aus entsprechender Tabellenspalte + Tageswert + J D (0.Januar.J) = J D von beliebigen Tag 2. Julianischer KalenderBerechnung von Monaten und Tagen zum J D
Feststehende Feiertage: 6. Jan. Christi Taufe; 2. Feb. Christi Darstellung im Tempel; 25. März Maria Verkündigung; 6. Aug. Christi Verklärung; 15. Aug. Maria Entschlafung; 8. Sept. Maria Geburt; 14. Sept. Kreuzerhöhung; 21. Nov. Einführung Maria in den Tempel; 25. Dez. Christi Geburt Bewegliche Feiertage: [Ostern – 7] Christi Einzug in Jerusalem (Palmsonntag); [Ostern] Christi Auferstehung; [Ostern+ 39] Christi Himmelfahrt; [Ostern + 49] Hl. Dreifaltigkeit (Pfingsten) 2. Julianischer KalenderWichtigste Festtage zum J D
Einführung am 15. Oktober 1583 greg. bzw. J D = 2299161 Unterscheidet sich lediglich durch die unterschiedliche Bezeichnung von einigen Feiertagen und einer veränderten Schaltjahres-Regelung vom Julianischen Kalender Schaltjahr sind alle restlos durch 4 teilbaren Jahre, mit Ausnahme der durch 100 aber nicht durch 400 teilbaren Jahre 3. Gregorianischer Kalender
G = Jahr des Gregorianischen Kalenders S = int(G / 100) S1 = G mod 100 S2 = int(1 – S1 / 100) P = int(G / 400) P1 = G mod 400 P2 = int(1 – P1 / 400) Q = int(G / 4) B = G mod 4 Q2 = int(1 – B / 4) R = S mod 4 R1 = 3 P + R – 2 R2 = Q2 + P2- S2 J D (0.Januar.G) = 1721058 + 1461 Q + 265 B – R2 – R1 3. Gregorianischer KalenderBerechnung der 0. Januar zum J D
G ist Schaltjahr, wenn R2 = 1 ist oder Gemeinjahr bei R2 = 0 R1 gibt die Tagesdifferenz zwischen Julianischem und Gregorianischen Kalender für den 0. Januar des Jahres G an Die Tagesdifferenz zwischen jul. und greg. Kalender lag zur Einführung des greg. Kalenders bei 10 Tagen, z.Z. bei 13 Tagen und ist stetig steigend 3. Gregorianischer KalenderBerechnung der 0. Januar zum J D
M = (15 + S – int(S / 3) – int(S / 4)) mod 30 N = (4 + S – int(S / 4)) mod 7 M und N für die Jahre 1582 – 2599: 3. Gregorianischer KalenderBerechnung des gregorianischen Ostersonntags zum J D
G = Jahr des Gregorianischen Kalenders A = G mod 19 B = G mod 4 C = G mod 7 D = (19 A + M) mod 30 E = (2 B + 4 C + 6 D + N) mod 7 F = 1 – R2 X = 0 Bei D = 29 und E = 6 und (11 M + 11) mod 30 < 19 dann X = 7 Bei D = 28 und E = 6 und (11 M + 11) mod 30 < 19 dann X = 7 J D (Ostern.greg) = J D (0.Januar.G) + D + E – F – X + 82 3. Gregorianischer KalenderBerechnung des gregorianischen Ostersonntags zum J D
1. Wenn R2 = 1 werden die Werte aus der Spalte SchJ verwendet, andernfalls GemJ 2. Werte aus entsprechender Tabellenspalte + Tageswert + J D (0.Januar.G) = J D von beliebigen Tag 3. Gregorianischer KalenderBerechnung von Monaten und Tagen zum J D
Feststehende Feiertage: 1. Jan Neujahr; 6. Jan. Epiphania; 2. Feb. Maria Lichtmeß; 25. März Maria Verkündigung; 3. Mai Kreuzerfindung; 15. Aug. Maria Himmelfahrt; 8. Dez. Maria Empfängnis; 25. Dez. Weihnachten Bewegliche Feiertage: [Ostern – 7] Palmsonntag; [Ostern] Ostersonntag; [Ostern + 39] Christi Himmelfahrt; [Ostern + 49] Pfingsten; [Ostern + 59] Fronleichnam 3. Gregorianischer KalenderWichtigste Festtage zum J D
Das Jahr enthält 12 Monate zu je 30 oder 29 Tagen In einem 30-jährigen Zyklus werden 11 Schaltjahre eingeschaltet, die 354 Tage in Gemeinjahren und 355 Tage in Schaltjahren aufweisen Schaltjahre sind die Jahre 2, 5, 7, 10, 13, 16, 18, 21, 24, 26 und 29 eines Zyklus Der Schalttag wird als letzter Tag des Jahres als 30. Dhu l-Hijja angehängt Der Islamische Kalender beginnt mit dem 1. Muharram 1 bzw. dem 16. Juli 622 jul. bzw. J D = 1948440 4. Islamischer bzw. Mohammedanischer Kalender
M = Jahreszahl der Hedschra K1 = 0,363636 K2 = 9,28 A = (M + 5) mod 30 B = int(K1 * A + K2) mod 11 C = int(M / 30) D = M mod 30 J D (0.Muharram.M) = 1948085 + 10631 C + 354 D + B 4. Islamischer KalenderBerechnung des 0. Muharram zum J D
Da der Schalttag an das Schaltjahr angehängt wird, sind die Werte der Tabelle für Gemeinjahr und Schaltjahr gleich Wert aus Tabelle + Tageswert + J D (0.Muharram.M) = J D von beliebigen Tag 4. Islamischer KalenderBerechnung der Monate und Tage zum J D
Die Wochentagsberechnung wird weiterhin durch J D mod 7 gebildet (Mo = 0, Di = 1,... So = 6) Die arabischen Wochentage lauten: 4. Islamischer KalenderBerechnung der Wochentage
Alle islamischen Feiertage sind feststehende Feiertage: 4. Islamischer KalenderBerechnung der Wochentage
Das Jahr der Jüdischen Weltära (W. Ä.) hat 12 oder im Schaltjahr 13 Monate zu 30 oder 29 Tagen Der 19jährige Schaltzyklus enthält sieben Schaltjahr welche im 3., 6., 8., 11., 14., 17., und 19. Jahr des Zyklus geschaltet werden Es gibt 6 verschiedene Jahreslängen: Im Gemeinjahr 353, 354 oder 355 Tage und im Schaltjahr 383, 384 oder 385 Tage, die sich in ungleichmäßigen Rhythmus abwechseln Im Schaltjahr wird der Monat Veadar an den Monat Adar angefügt Der Jüdische Kalender beginnt am 1. Tishri 1 W. Ä. bzw. dem 7. Okt. 3761 v. Chr. jul. bzw. J D = 347998 5. Jüdischer Kalender
H = Jahreszahl der Jüdischen Weltära J D (0.Tishri.H) = 1721279 + m1 + E + 1461 J1 + 365 b 5. Jüdischer KalenderBerechnung des 0. Tishri zum J D
Um das J D eines bestimmten Tages zu bestimmen wird die Jahreslänge benötigt. Diese erhält man, wenn man den 0. Tishri des Folgejahres berechnet und die Differenz aus den beiden Jahresanfängen ermittelt. Werte aus entsprechender Tabellenspalte + Tageswert + J D (0.Tishri.H) = J D von beliebigen Tag 5. Jüdischer KalenderBerechnung von Monaten und Tagen zum J D
Der 1. Tag (Sonntag) fängt bereits am Samstag um 18:00 Uhr an, da der Tag mit dem Sonnenuntergang beginnt Die Berechnung des Wochentags lautet weiterhin J D mod 7 Die Wochentage besitzen bis auf den Sabbat keine Namen: 5. Jüdischer KalenderBerechnung der Wochentage zum J D
Der Chinesische Kalender ist ebenfalls mit Hilfe des Julianischen Datums berechenbar 6. Weitere Kalender
Kalenderrechner: http://www.nabkal.de/kalrech2.html http://www.ortelius.de/kalender/form_de2.php Osterdatum: http://www.nabkal.de/ostrech1.html 6. Internet-Rechner