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