From 8cf8493e4b918cece529fef978d50c8b9835d230 Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed> Date: Sun, 19 Mar 2023 16:26:07 +0000 Subject: [PATCH] Erweiterungen zu chrisltich-orthodoxen Ereignissen (tlw. noch weiter in Arbeit) --- src/de/uhilger/zeitrechnung/ereignis/JulianischesEreignis.java | 50 +++++++++++++++++++++++++ src/de/uhilger/zeitrechnung/ereignis/TagDatumEreignis.java | 14 ++++++- src/de/uhilger/zeitrechnung/ereignis/Ereignis.java | 3 + src/de/uhilger/zeitrechnung/ereignis/MuslimischesEreignis.java | 2 src/de/uhilger/zeitrechnung/Definition.java | 9 ++++ 5 files changed, 75 insertions(+), 3 deletions(-) diff --git a/src/de/uhilger/zeitrechnung/Definition.java b/src/de/uhilger/zeitrechnung/Definition.java index a55fb08..90fde2b 100644 --- a/src/de/uhilger/zeitrechnung/Definition.java +++ b/src/de/uhilger/zeitrechnung/Definition.java @@ -63,6 +63,7 @@ private long p2; private long p3; private long p4; + private long p5; public String getName() { return name; @@ -111,4 +112,12 @@ public void setp4(long p4) { this.p4 = p4; } + + public long getp5() { + return p5; + } + + public void setp5(long p5) { + this.p5 = p5; + } } diff --git a/src/de/uhilger/zeitrechnung/ereignis/Ereignis.java b/src/de/uhilger/zeitrechnung/ereignis/Ereignis.java index b2499d8..38ce2ee 100644 --- a/src/de/uhilger/zeitrechnung/ereignis/Ereignis.java +++ b/src/de/uhilger/zeitrechnung/ereignis/Ereignis.java @@ -57,6 +57,9 @@ /** Typnummer fuer MuslimischesEreignis */ public static final int TYP_MUSLIMISCH = 8; + /** Typnummer fuer JulianischesEreignis */ + public static final int TYP_JULIANISCH = 9; + /** * Den Typ des Ereignisses ermitteln * diff --git a/src/de/uhilger/zeitrechnung/ereignis/JulianischesEreignis.java b/src/de/uhilger/zeitrechnung/ereignis/JulianischesEreignis.java new file mode 100644 index 0000000..245a221 --- /dev/null +++ b/src/de/uhilger/zeitrechnung/ereignis/JulianischesEreignis.java @@ -0,0 +1,50 @@ +package de.uhilger.zeitrechnung.ereignis; + +import de.uhilger.zeitrechnung.Datum; +import de.uhilger.zeitrechnung.kalender.ISOKalender; +import de.uhilger.zeitrechnung.kalender.JulianischerKalender; +import java.util.ArrayList; +import java.util.List; + +/** + * Bestimmung der Zeitpunkte von Ereignissen im julianischen Kalendersystem + * + * <p> + * Die Ereignis-Definition lautet:<br> + * JulianischesEreignis.getDefinition.setp1(Monat des julianischen Kalenders);<br> + * JulianischesEreignis.getDefinition.setp2(Tag im Monat des julianischen Kalenders);<br> + * + * @author Ulrich Hilger + */ +public class JulianischesEreignis extends EreignisBasis { + + /** + * Den Typ des Ereignisses ermitteln + * + * @return Ereignis.TYP_JULIANISCH + */ + @Override + public int getTyp() { + return TYP_JULIANISCH; + } + + /** + * Die Tage eines Jahres im gregorianischen Kalendersystem + * ermitteln, an denen das Ereignis stattfindet. + * + * @param isoJahr das Jahr im gregorianischen Kalender, + * fuer das ermittelt werden soll, an welchen Tagen das Ereignis stattfindet + * @return die Liste aus Datum-Objekten, die die Tage im gregorianischen + * Kalender bezeichnet, an denen das Ereignis stattfindet + */ + @Override + public List<Datum> getZeitpunkte(long isoJahr) { + Datum jDatum = new Datum(isoJahr, (int) definition.getp1(), (int) definition.getp2()); + JulianischerKalender j = new JulianischerKalender(); + long tage = j.zuTagen(jDatum); + ISOKalender g = new ISOKalender(); + ArrayList list = new ArrayList(); + list.add(g.vonTagen(tage)); + return list; + } +} \ No newline at end of file diff --git a/src/de/uhilger/zeitrechnung/ereignis/MuslimischesEreignis.java b/src/de/uhilger/zeitrechnung/ereignis/MuslimischesEreignis.java index 87a49f7..61cdd51 100644 --- a/src/de/uhilger/zeitrechnung/ereignis/MuslimischesEreignis.java +++ b/src/de/uhilger/zeitrechnung/ereignis/MuslimischesEreignis.java @@ -54,7 +54,7 @@ * @param isoJahr das Jahr im gregorianischen Kalender, * fuer das ermittelt werden soll, an welchen Tagen das Ereignis stattfindet * @return die Liste aus Datum-Objekten, die die Tage im gregorianischen - * Kalender bezeichnet, an denen das Ereignis stattfinden + * Kalender bezeichnet, an denen das Ereignis stattfindet */ @Override public List<Datum> getZeitpunkte(long isoJahr) { diff --git a/src/de/uhilger/zeitrechnung/ereignis/TagDatumEreignis.java b/src/de/uhilger/zeitrechnung/ereignis/TagDatumEreignis.java index d9468e7..b7a2a6a 100644 --- a/src/de/uhilger/zeitrechnung/ereignis/TagDatumEreignis.java +++ b/src/de/uhilger/zeitrechnung/ereignis/TagDatumEreignis.java @@ -19,7 +19,10 @@ import de.uhilger.zeitrechnung.Datum; import de.uhilger.zeitrechnung.Definition; +import de.uhilger.zeitrechnung.kalender.BasisKalender; 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; @@ -37,6 +40,7 @@ * p2 Monat (1=Januar .. 12=Dezember)<br> * p3 Tag <br> * p4 Wochentag vor (-) oder nach (+), z.B. -5 fuer fuenfter wie in 'fuenfter Freitag vor' <br> + * p5 Kalendersystem 1 gregorianisch (Standardvorbelegung), 2 julianisch <br> * </p> * @author Ulrich Hilger */ @@ -73,9 +77,15 @@ Definition def = getDefinition(); long monat = def.getp2(); long tag = def.getp3(); - ISOKalender w = new ISOKalender(); + long kalender = def.getp5(); + Wandler w; + if(1 == kalender) { + w = new ISOKalender(); + } else { + w = new JulianischerKalender(); + } long basisDatum = w.zuTagen(isoJahr, (int) monat, (int) tag); - long generischesDatum = w.nterTag((int) def.getp4(), (int) def.getp1(), basisDatum); + long generischesDatum = ((BasisKalender) w).nterTag((int) def.getp4(), (int) def.getp1(), basisDatum); Datum d = w.vonTagen(generischesDatum); //Datum d = w.getDatum(); ArrayList list = new ArrayList(); -- Gitblit v1.9.3