commit | author | age
|
8cf849
|
1 |
package de.uhilger.zeitrechnung.ereignis; |
U |
2 |
|
|
3 |
import de.uhilger.zeitrechnung.Datum; |
2f6b9a
|
4 |
import de.uhilger.zeitrechnung.Definition; |
8cf849
|
5 |
import de.uhilger.zeitrechnung.kalender.ISOKalender; |
U |
6 |
import de.uhilger.zeitrechnung.kalender.JulianischerKalender; |
|
7 |
import java.util.ArrayList; |
|
8 |
import java.util.List; |
|
9 |
|
|
10 |
/** |
|
11 |
* Bestimmung der Zeitpunkte von Ereignissen im julianischen Kalendersystem |
2f6b9a
|
12 |
* |
8cf849
|
13 |
* <p> |
2f6b9a
|
14 |
* Die Ereignis-Definition lautet:<br> |
U |
15 |
* JulianischesEreignis.getDefinition.setp1(Monat des julianischen |
|
16 |
* Kalenders);<br> |
|
17 |
* JulianischesEreignis.getDefinition.setp2(Tag im Monat des julianischen |
|
18 |
* Kalenders);<br> |
|
19 |
* |
8cf849
|
20 |
* @author Ulrich Hilger |
U |
21 |
*/ |
|
22 |
public class JulianischesEreignis extends EreignisBasis { |
|
23 |
|
|
24 |
/** |
|
25 |
* Den Typ des Ereignisses ermitteln |
2f6b9a
|
26 |
* |
8cf849
|
27 |
* @return Ereignis.TYP_JULIANISCH |
U |
28 |
*/ |
|
29 |
@Override |
|
30 |
public int getTyp() { |
|
31 |
return TYP_JULIANISCH; |
|
32 |
} |
|
33 |
|
|
34 |
/** |
2f6b9a
|
35 |
* Die Tage eines Jahres im gregorianischen Kalendersystem ermitteln, an denen |
U |
36 |
* das Ereignis stattfindet. |
|
37 |
* |
|
38 |
* @param isoJahr das Jahr im gregorianischen Kalender, fuer das ermittelt |
|
39 |
* werden soll, an welchen Tagen das Ereignis stattfindet |
|
40 |
* @return die Liste aus Datum-Objekten, die die Tage im gregorianischen |
8cf849
|
41 |
* Kalender bezeichnet, an denen das Ereignis stattfindet |
U |
42 |
*/ |
|
43 |
@Override |
|
44 |
public List<Datum> getZeitpunkte(long isoJahr) { |
|
45 |
ISOKalender g = new ISOKalender(); |
2f6b9a
|
46 |
long start = g.zuTagen(isoJahr, Definition.JANUAR, 1); |
U |
47 |
long end = g.zuTagen(isoJahr, Definition.DEZEMBER, 31); |
|
48 |
JulianischerKalender j = new JulianischerKalender(); |
|
49 |
Datum jStart = j.vonTagen(start); |
|
50 |
long jStartJahr = jStart.getJahr(); |
|
51 |
Datum jEnd = j.vonTagen(end); |
|
52 |
long jEndJahr = jEnd.getJahr(); |
|
53 |
long anzahlJahre = (jEndJahr - jStartJahr) + (long) 1; |
8cf849
|
54 |
ArrayList list = new ArrayList(); |
2f6b9a
|
55 |
for (long y = 0; y < anzahlJahre; y++) { |
d20d98
|
56 |
long tage = j.zuTagen(jStartJahr + y, (int) definition.getp1(), (int) definition.getp2()); |
c14e57
|
57 |
if(tage >= start && tage <= end) { |
U |
58 |
list.add(g.vonTagen(tage)); |
|
59 |
} |
2f6b9a
|
60 |
} |
8cf849
|
61 |
return list; |
2f6b9a
|
62 |
} |
8cf849
|
63 |
} |