From d20d989f5495492f1258c8313db7c19b429111a3 Mon Sep 17 00:00:00 2001 From: ulrich Date: Thu, 23 Mar 2023 17:55:43 +0000 Subject: [PATCH] Chinesischer Kalender implementiert --- src/de/uhilger/zeitrechnung/ereignis/JulianischesEreignis.java | 47 ++++++++++++++++++++++++++++++----------------- 1 files changed, 30 insertions(+), 17 deletions(-) diff --git a/src/de/uhilger/zeitrechnung/ereignis/JulianischesEreignis.java b/src/de/uhilger/zeitrechnung/ereignis/JulianischesEreignis.java index 245a221..bd1ccef 100644 --- a/src/de/uhilger/zeitrechnung/ereignis/JulianischesEreignis.java +++ b/src/de/uhilger/zeitrechnung/ereignis/JulianischesEreignis.java @@ -1,6 +1,7 @@ package de.uhilger.zeitrechnung.ereignis; import de.uhilger.zeitrechnung.Datum; +import de.uhilger.zeitrechnung.Definition; import de.uhilger.zeitrechnung.kalender.ISOKalender; import de.uhilger.zeitrechnung.kalender.JulianischerKalender; import java.util.ArrayList; @@ -8,19 +9,21 @@ /** * 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> - * + * 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 @@ -29,22 +32,32 @@ } /** - * 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 + * 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(); + long start = g.zuTagen(isoJahr, Definition.JANUAR, 1); + long end = g.zuTagen(isoJahr, Definition.DEZEMBER, 31); + JulianischerKalender j = new JulianischerKalender(); + Datum jStart = j.vonTagen(start); + long jStartJahr = jStart.getJahr(); + Datum jEnd = j.vonTagen(end); + long jEndJahr = jEnd.getJahr(); + long anzahlJahre = (jEndJahr - jStartJahr) + (long) 1; ArrayList list = new ArrayList(); - list.add(g.vonTagen(tage)); + for (long y = 0; y < anzahlJahre; y++) { + long tage = j.zuTagen(jStartJahr + y, (int) definition.getp1(), (int) definition.getp2()); + if(tage >= start && tage <= end) { + list.add(g.vonTagen(tage)); + } + } return list; - } + } } \ No newline at end of file -- Gitblit v1.9.3