Bestimmung der Zeitpunkte von Ereignissen
ulrich
2023-03-23 d20d989f5495492f1258c8313db7c19b429111a3
commit | author | age
66d68b 1 /*
U 2   Zeitrechnung - a class library to determine calendar events
3   Copyright (c) 1984-2022 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.kalender;
19
20 import de.uhilger.zeitrechnung.Datum;
21
22 /**
23  * Die Schnittstelle Wandler muss von Klassen implementiert werden, 
24  * die zwischen generischem Datum und dem Datum eines Kalendersystems 
25  * wandeln.
26  * 
27  * @author Ulrich Hilger
28  * @version 2, 1.10.2022
29  */
30 public interface Wandler {
31   
32   /**
33    * Die Anzahl der Tage ermitteln, die zwischen einem gegebenen Datum 
34    * eines bestimmten Kalendersystems und dem Tag liegen, der im
35    * Gregorianischen Kalender mit dem Datum 1. Januar 1 bezeichnet ist.
36    * 
37    * @param jahr das Jahr im betreffenden Kalendersystem
38    * @param monat der Monat im betreffenden Kalendersystem
39    * @param tag der Tag im betreffenden Kalendersysem
40    * 
41    * @return Anzahl Tage, die zwischen dem gegebenen Datum 
42    * eines bestimmten Kalendersystems und dem Tag liegen, der im 
43    * Gregorianischen Kalender mit dem Datum 1. Januar 1 bezeichnet ist. 
44    * Liegt das gegebene Datum vor dem 1. Januar 1 (gregorianisch), wird 
45    * eine negative Zahl zurueckgegeben. 
46    */
47   public long zuTagen(long jahr, int monat, int tag);
48
49   /**
50    * Die Anzahl der Tage ermitteln, die zwischen einem gegebenen Datum 
51    * eines bestimmten Kalendersystems und dem Tag liegen, der im
52    * Gregorianischen Kalender mit dem Datum 1. Januar 1 bezeichnet ist.
53    * 
54    * @param d das Datum im betreffenden Kalendersystem
55    * 
56    * @return Anzahl Tage, die zwischen dem gegebenen Datum 
57    * eines bestimmten Kalendersystems und dem Tag liegen, der im 
58    * Gregorianischen Kalender mit dem Datum 1. Januar 1 bezeichnet ist. 
59    * Liegt das gegebene Datum vor dem 1. Januar 1 (gregorianisch), wird 
60    * eine negative Zahl zurueckgegeben. 
61    */  
62   public long zuTagen(Datum d);
63   
64   /**
65    * Das Datum im betreffenden Kalendersystem fuer ein generisches Datum 
66    * ermitteln.
67    * 
68    * @param tage Anzahl der Tage zwischen 1. Januar 1 im gregorianischen 
69    * Kalender und dem Tag, dessen Datum im betreffenden Kalendersystem 
70    * ermittelt werden soll
71    * @return das Datum im betreffenden Kalendersystem
72    */
73   public Datum vonTagen(long tage);
74 }