src/de/uhilger/zeitrechnung/ereignis/OsterEreignis.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/zeitrechnung/kalender/ChristlicherKalender.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/zeitrechnung/kalender/ISOKalender.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/zeitrechnung/kalender/JulianischerKalender.java | ●●●●● patch | view | raw | blame | history |
src/de/uhilger/zeitrechnung/ereignis/OsterEreignis.java
@@ -17,9 +17,11 @@ */ package de.uhilger.zeitrechnung.ereignis; import de.uhilger.zeitrechnung.kalender.ChristlicherKalender; import de.uhilger.zeitrechnung.Datum; import de.uhilger.zeitrechnung.Definition; import de.uhilger.zeitrechnung.kalender.ISOKalender; import de.uhilger.zeitrechnung.kalender.JulianischerKalender; import de.uhilger.zeitrechnung.kalender.Wandler; import java.util.ArrayList; import java.util.List; @@ -103,7 +105,6 @@ */ @Override public List<Datum> getZeitpunkte(long isoJahr) { ChristlicherKalender ck = new ChristlicherKalender(); Definition def = getDefinition(); if (ostern > Long.MIN_VALUE && jahr == isoJahr && osterArt == def.getp2()) { // Ostern wurde fuer das fragliche Jahr schon bestimmt @@ -111,12 +112,15 @@ jahr = isoJahr; osterArt = def.getp2(); if (osterArt == WESTLICH) { ostern = ck.ostern(isoJahr); Wandler k = new ISOKalender(); ostern = ((ISOKalender) k).ostern(isoJahr); } else { ostern = ck.orthodoxesOstern(isoJahr); Wandler k = new JulianischerKalender(); ostern = ((JulianischerKalender) k).orthodoxesOstern(isoJahr); } } Datum d = ck.vonTagen(ostern + getDefinition().getp1()); ISOKalender iso = new ISOKalender(); Datum d = iso.vonTagen(ostern + getDefinition().getp1()); ArrayList list = new ArrayList(); list.add(d); return list; src/de/uhilger/zeitrechnung/kalender/ChristlicherKalender.java
File was deleted src/de/uhilger/zeitrechnung/kalender/ISOKalender.java
@@ -137,4 +137,21 @@ return 31; } } public long ostern(long gregorianischesJahr) { long jahrhundert = 1 + ganzzahlQuotient(gregorianischesJahr, 100); long veraenderlicheEpakte = modulo(14 + 11 * modulo(gregorianischesJahr, 19) - ganzzahlQuotient(3 * jahrhundert, 4) + ganzzahlQuotient(5 + 8 * jahrhundert, 25), 30); long berichtigteEpakte = veraenderlicheEpakte == 0 || (veraenderlicheEpakte == 1 && 10 < modulo(gregorianischesJahr, 19)) ? veraenderlicheEpakte + 1 : veraenderlicheEpakte; long vollmondOstern = zuTagen(gregorianischesJahr, Definition.APRIL, 19) - berichtigteEpakte; return tagNach(vollmondOstern, Definition.SONNTAG); } } src/de/uhilger/zeitrechnung/kalender/JulianischerKalender.java
@@ -19,6 +19,8 @@ import de.uhilger.zeitrechnung.Datum; import de.uhilger.zeitrechnung.Definition; import static de.uhilger.zeitrechnung.Definition.APRIL; import static de.uhilger.zeitrechnung.Definition.SONNTAG; /** * Die Klasse JulianischerKalender dient zur Umwandlung von generischem @@ -93,6 +95,14 @@ return new Datum(jahr, monat, tag); } public long orthodoxesOstern(long gJahr) { long berichtigteEpakte = modulo(14 + 11 * modulo(gJahr, 19), 30); long jJahr = gJahr > 0 ? gJahr : gJahr - 1; long pMond = zuTagen(jJahr, APRIL, 19) - berichtigteEpakte; return tagNach(pMond, SONNTAG); } /* ------------ Besonderheiten des Julianischen Kalenders ---------- */ /**