Bestimmung der Zeitpunkte von Ereignissen
ulrich
2023-03-19 8cf8493e4b918cece529fef978d50c8b9835d230
commit | author | age
66d68b 1 /*
U 2   Zeitrechnung - a class library to determine calendar events
3   Copyright (c) 1984-2023 Ulrich Hilger, http://uhilger.de
4
5   This program is free software: you can redistribute it and/or modify
6   it under the terms of the GNU Affero General Public License as published by
7   the Free Software Foundation, either version 3 of the License, or
8   (at your option) any later version.
9
10   This program is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   GNU Affero General Public License for more details.
14
15   You should have received a copy of the GNU Affero General Public License
16   along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18 package de.uhilger.zeitrechnung.ereignis;
19
20 import de.uhilger.zeitrechnung.Datum;
21 import java.util.ArrayList;
22 import java.util.List;
23
24 /**
25  * <p>Ein Ereignis, das jedes Jahr am selben Datum stattfindet, zum 
26  * Beispiel jedes Jahr am 16. Oktober.</p>
27  * 
28  * <p>
29  * Die Ereignis-Definition lautet:<br> 
30  * DatumEreignis.getDefinition.setp1(Monat);<br>
31  * DatumEreignis.getDefinition.setp2(Tag);<br>
32  * wobei Monat einer Ganzzahl aus 
33  * [Definition.JANUAR .. Defintion.DEZEMBER] 
34  * entspricht.
35  * </p>
36  * 
37  * @author Ulrich Hilger
38  */
39 public class DatumEreignis extends EreignisBasis {
40   
41   public DatumEreignis() {
42     super();
43   }
44     
45   /**
46    * Die Tage eines Jahres im gregorianischen Kalendersystem 
47    * ermitteln, an denen das Ereignis stattfindet.
48    * 
49    * @param isoJahr das Jahr im gregorianischen Kalender, 
50    * fuer das ermittelt werden soll, an welchen Tagen das Ereignis stattfindet
51    * @return die Liste aus Datum-Objekten, die die Tage im gregorianischen 
52    * Kalender bezeichnet, an denen das Ereignis stattfindet
53    */
54   @Override
55   public List<Datum> getZeitpunkte(long isoJahr) {
56     Datum d = new Datum();
57     d.setJahr(isoJahr);
58     d.setMonat((int) definition.getp1());
59     d.setTag((int) definition.getp2());
60     ArrayList list = new ArrayList();
61     list.add(d);
62     return list;
63   }
64
65   /**
66    * Den Typ des Ereignisses ermitteln
67    * 
68    * @return Ereignis.TYP_DATUM
69    */
70   @Override
71   public int getTyp() {
72     return Ereignis.TYP_DATUM;
73   }
74
75 }