| | |
| | | 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; |
| | |
| | | |
| | | /** |
| | | * 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 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 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; |
| | | } |
| | | } |
| | | } |