/*
|
Zeitrechnung - a class library to determine calendar events
|
Copyright (c) 1984-2022 Ulrich Hilger, http://uhilger.de
|
|
This program is free software: you can redistribute it and/or modify
|
it under the terms of the GNU Affero General Public License as published by
|
the Free Software Foundation, either version 3 of the License, or
|
(at your option) any later version.
|
|
This program is distributed in the hope that it will be useful,
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
GNU Affero General Public License for more details.
|
|
You should have received a copy of the GNU Affero General Public License
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
*/
|
package de.uhilger.zeitrechnung.kalender;
|
|
import de.uhilger.zeitrechnung.Datum;
|
|
/**
|
* Die Schnittstelle Wandler muss von Klassen implementiert werden,
|
* die zwischen generischem Datum und dem Datum eines Kalendersystems
|
* wandeln.
|
*
|
* @author Ulrich Hilger
|
* @version 2, 1.10.2022
|
*/
|
public interface Wandler {
|
|
/**
|
* Die Anzahl der Tage ermitteln, die zwischen einem gegebenen Datum
|
* eines bestimmten Kalendersystems und dem Tag liegen, der im
|
* Gregorianischen Kalender mit dem Datum 1. Januar 1 bezeichnet ist.
|
*
|
* @param jahr das Jahr im betreffenden Kalendersystem
|
* @param monat der Monat im betreffenden Kalendersystem
|
* @param tag der Tag im betreffenden Kalendersysem
|
*
|
* @return Anzahl Tage, die zwischen dem gegebenen Datum
|
* eines bestimmten Kalendersystems und dem Tag liegen, der im
|
* Gregorianischen Kalender mit dem Datum 1. Januar 1 bezeichnet ist.
|
* Liegt das gegebene Datum vor dem 1. Januar 1 (gregorianisch), wird
|
* eine negative Zahl zurueckgegeben.
|
*/
|
public long zuTagen(long jahr, int monat, int tag);
|
|
/**
|
* Die Anzahl der Tage ermitteln, die zwischen einem gegebenen Datum
|
* eines bestimmten Kalendersystems und dem Tag liegen, der im
|
* Gregorianischen Kalender mit dem Datum 1. Januar 1 bezeichnet ist.
|
*
|
* @param d das Datum im betreffenden Kalendersystem
|
*
|
* @return Anzahl Tage, die zwischen dem gegebenen Datum
|
* eines bestimmten Kalendersystems und dem Tag liegen, der im
|
* Gregorianischen Kalender mit dem Datum 1. Januar 1 bezeichnet ist.
|
* Liegt das gegebene Datum vor dem 1. Januar 1 (gregorianisch), wird
|
* eine negative Zahl zurueckgegeben.
|
*/
|
public long zuTagen(Datum d);
|
|
/**
|
* Das Datum im betreffenden Kalendersystem fuer ein generisches Datum
|
* ermitteln.
|
*
|
* @param tage Anzahl der Tage zwischen 1. Januar 1 im gregorianischen
|
* Kalender und dem Tag, dessen Datum im betreffenden Kalendersystem
|
* ermittelt werden soll
|
* @return das Datum im betreffenden Kalendersystem
|
*/
|
public Datum vonTagen(long tage);
|
}
|