import { JavaObject } from '../../java/lang/JavaObject'; import { PairNN } from '../../asd/adt/PairNN'; import type { List } from '../../java/util/List'; import { Class } from '../../java/lang/Class'; import { Wochentag } from '../../core/types/Wochentag'; export declare class DateUtils extends JavaObject { /** * Die Anzahl der Tage zwischen dem Jahr 0 und dem Jahr 1.1.1970 */ static readonly DAYS_FROM_0_TO_1970: number; /** * Die Anzahl an Tagen in 400 Jahren */ static readonly DAYS_PER_400_YEARS: number; /** * Die Anzahl an Tagen in 100 Jahren, nicht der Speziallfall, wenn ein Jahrhundert mit einem Schaltjahr beginnt */ static readonly DAYS_PER_100_YEARS: number; /** * Die Anzahl an Tagen in 4 Jahren */ static readonly DAYS_PER_4_YEARS: number; /** * Die Anzahl an Tagen in einem Jahr, welches kein Schaltjahr ist */ static readonly DAYS_PER_YEAR: number; /** * Die Anzahl an Tagen in einem Schaltjahr */ static readonly DAYS_PER_LEAP_YEAR: number; /** * Das kleinste gültige Jahr für das alle Datumsberechnungen geprüft wurden. */ static readonly MIN_GUELTIGES_JAHR: number; /** * Das größte gültige Jahr für das alle Datumsberechnungen geprüft wurden. */ static readonly MAX_GUELTIGES_JAHR: number; /** * Ein Mapping für den Monat als Zahl zu seiner textuellen Beschreibung. */ private static readonly MONAT_ZU_TEXT; /** * Ein Mapping für den Wochentag als Zahl zu seiner textuellen Beschreibung. */ private static readonly WOCHENTAG_ZU_TEXT; /** * Liefert für den jeweiligen Monat im Jahr die Summe der vergangenen Tage.
* [0][3] bedeutet, dass im März bereits 59 Tage vergangen sind (kein Schaltjahr).
* [1][3] bedeutet, dass im März bereits 60 Tage vergangen sind (Schaltjahr). */ private static readonly monat_zu_vergangene_tage; private constructor(); /** * Liefert ein aus dem Datum extrahiertes int[] mit dem Inhalt [jahr, monat, tagImMonat, tagInWoche, tagImJahr, kalenderwoche, kalenderwochenjahr].
*
* Gültige Werte sind im Bereich:
* Index 0: jahr = 1900 bis 2900
* Index 1: monat = 1 (Januar) bis 12 (Dezember)
* Index 2: tagImMonat = 1 bis 31
* Index 3: tagInWoche = 1 (Montag) bis 7 (Sonntag)
* Index 4: tagImJahr = 1 bis 365 oder 366
* Index 5: kalenderwoche = 1 bis 52 oder 53
* Index 6: kalenderwochenjahr = 1900 bis 2900 (das Jahr der Kalenderwoche)
*
* Auszug aus Wikipedia: Da ISO 8601 den Montag als ersten Tag der Woche definiert, ist dies somit die erste Woche, * von der mehr Tage (mindestens vier) auf das neue Jahr fallen als auf das alte Jahr. * Äquivalent hierzu sind die folgenden Definitionen:
* - jene Woche, die den 4. Januar enthält
* - jene Woche, die den 1. Januar enthält, falls dieser ein Montag, Dienstag, Mittwoch oder Donnerstag ist, sonst die darauf folgende Woche * * @param datumISO8601 Das Datum im ISO8601-Format uuuu-MM-dd (z.B. 2014-03-14). * * @return ein aus dem Datum extrahiertes int[] mit dem Inhalt [jahr, monat, tagImMonat, tagInWoche, tagImJahr, kalenderwoche, kalenderwochen, kalenderwochenjahr].. * @see https://de.wikipedia.org/wiki/Woche#Kalenderwoche */ static extractFromDateISO8601(datumISO8601: string): Array; /** * Prüft, ob ein gegebenes Datum im ISO-8601-Format (YYYY-MM-DD) gültig ist. * * @param datumISO8601 Das zu prüfende Datum als String im Format "YYYY-MM-DD". * @return {@code true}, wenn das Datum gültig ist, sonst {@code false}. * * - Ein Datum ist gültig, wenn: * - Es genau drei Teile enthält (Jahr, Monat, Tag). * - Das Jahr nicht ungültig ist (geprüft durch {@code gibIstJahrUngueltig(int jahr)}). * - Der Monat zwischen 1 und 12 liegt. * - Der Tag im Monat zwischen 1 und der maximalen Anzahl an Tagen des Monats liegt * (unter Berücksichtigung von Schaltjahren durch {@code daysInMonth(int jahr, int monat)}). * - Falls {@code null} übergeben wird, das Format ungültig ist oder nicht-numerische Zeichen enthält, wird {@code false} zurückgegeben. */ static isValidDate(datumISO8601: string | null): boolean; /** * Liefert die Anzahl an Kalenderwochen des Jahres (52 oder 53) nach ISO8601. * * @param jahr Das Jahr. * * @return die Anzahl an Kalenderwochen des Jahres (52 oder 53) nach ISO8601. */ static gibKalenderwochenOfJahr(jahr: number): number; /** * Liefert die Anzahl an Tagen des Jahres (365 oder 366). * * @param jahr Das Jahr. * * @return die Anzahl an Tagen des Jahres (365 oder 366). */ static gibTageOfJahr(jahr: number): number; /** * Liefert eine Liste von Paaren von Wochentagen und den zugehörigen Daten im ISO8601-Format (uuuu-MM-dd) der als Array übergebenen Wochentage der Kalenderwoche des Kalenderwochenjahres. *
Hinweis: Der Montag kann bei der 1. KW im Vorjahr liegen! * * @param kalenderwochenjahr Das Jahr der Kalenderwoche. * @param kalenderwoche Die Kalenderwoche. * @param wochentage Das Array der Wochentage. * * @return die Liste von Paaren von Wochentagen und den zugehörigen Daten im ISO8601-Format (uuuu-MM-dd) der der Kalenderwoche des Kalenderwochenjahres. */ static gibDatenDerWochentageOfJahrAndKalenderwoche(kalenderwochenjahr: number, kalenderwoche: number, wochentage: Array): List>; /** * Liefert das Datum im ISO8601-Format (uuuu-MM-dd) des Wochentags (aus dem Intervall 1 bis 7) der Kalenderwoche des Kalenderwochenjahres. *
Hinweis: Der Montag kann bei der 1. KW im Vorjahr liegen! * * @param kalenderwochenjahr Das Jahr der Kalenderwoche. * @param kalenderwoche Die Kalenderwoche. * @param wochentag Der Wochentag aus dem Intervall 1 bis 7. * * @return das Datum im ISO8601-Format (uuuu-MM-dd) des Wochentags (aus dem Intervall 1 bis 7) der Kalenderwoche des Kalenderwochenjahres. */ static gibDatumDesWochentagsOfJahrAndKalenderwoche(kalenderwochenjahr: number, kalenderwoche: number, wochentag: number): string; /** * Liefert das Datum im ISO8601-Format (uuuu-MM-dd)des Montags der Kalenderwoche des Jahres. *
Hinweis: Der Montag kann bei der 1. KW im Vorjahr liegen! *
Beispiel 1: Der Montag der 1. KW im 2023 ist der 02.01.2023 *
Beispiel 2: Der Montag der 1. KW im 2024 ist der 01.01.2024 *
Beispiel 3: Der Montag der 1. KW im 2025 ist der 30.12.2023! * * @param kalenderwochenjahr Das Jahr der Kalenderwoche. * @param kalenderwoche Die Kalenderwoche. * * @return das Datum im ISO8601-Format (uuuu-MM-dd) des Montags der Kalenderwoche des Jahres. */ static gibDatumDesMontagsOfJahrAndKalenderwoche(kalenderwochenjahr: number, kalenderwoche: number): string; /** * Liefert das Datum im ISO8601-Format (uuuu-MM-dd) des Sonntags der Kalenderwoche des Jahres. *
Hinweis: Der Sonntag kann bei der 52/53. KW im Folgejahr liegen! *
Beispiel 1: Der Sonntag der 52. KW im 2023 ist der 31.12.2023 *
Beispiel 2: Der Sonntag der 52. KW im 2024 ist der 29.12.2024 *
Beispiel 3: Der Sonntag der 52. KW im 2025 ist der 28.12.2025 *
Beispiel 4: Der Sonntag der 53. KW im 2026 ist der 03.01.2027! *
Beispiel 5: Der Sonntag der 52. KW im 2027 ist der 02.01.2028! * * @param kalenderwochenjahr Das Jahr der Kalenderwoche. * @param kalenderwoche Die Kalenderwoche. * * @return das Datum im ISO8601-Format (uuuu-MM-dd) des Sonntags der Kalenderwoche des Jahres. */ static gibDatumDesSonntagsOfJahrAndKalenderwoche(kalenderwochenjahr: number, kalenderwoche: number): string; /** * Liefert das Datum im ISO8601-Format (uuuu-MM-dd) eines Tages im Jahres. *
Hinweis: Die Methode erlaubt Werte die zum Vorjahr oder Folgejahr führen. * * @param jahr Das Jahr. * @param tagImJahr Der jeweilige Tag im Jahr. Meistens zwischen 1 und 365, aber nicht zwingend! * * @return das Datum im ISO8601-Format (uuuu-MM-dd) eines Tages im Jahres. */ static gibDatumDesTagesOfJahr(jahr: number, tagImJahr: number): string; /** * Liefert TRUE, falls das Jahr ungültig ist. * * @param jahr Das Jahr. * * @return TRUE, falls das Jahr ungültig ist. */ static gibIstJahrUngueltig(jahr: number): boolean; /** * Liefert das nach "DIN 5008 optional" konvertierte Datumsformat, z.B. 2023-02-28 zu 28.02.2023. * * @param datumISO8601 Das Datum im ISO8601-Format uuuu-MM-dd (z.B. 2023-02-28). * * @return das nach "DIN 5008 optional" konvertierte Datumsformat, z.B. 2023-02-28 zu 28.02.2023. */ static gibDatumGermanFormat(datumISO8601: string): string; /** * Liefert das vom Format "2006-08-31" ins Format "31. August 2006" konvertierte Datum. * * @param datumISO8601 Das Datum im ISO8601-Format uuuu-MM-dd (z.B. 2023-02-28). * * @return das vom Format "2006-08-31" ins Format "31. August 2006" konvertierte Datum. */ static gibDatumGermanFormatAusgeschrieben(datumISO8601: string): string; /** * Liefert die Minuten einer Zeitangabe im Format hh:mm oder hh.mm. *
hh muss ein- oder zweistellig sein, im Bereich 0 bis 23. *
mm muss ein- oder zweistellig sein, im Bereich 0 bis 59. * * @param zeit Die Zeitangabe im Format hh:mm oder hh.mm. * * @return die Minuten einer Zeitangabe im Format hh:mm oder hh.mm. */ static gibMinutenOfZeitAsString(zeit: string): number; /** * Liefert den ZeitString im Format hh:mm zu einer vorgegebenen Minutenanzahl. *
Gültige Werte sind im Bereich 0 bis 24*60=1440 (exklusive). * * @param minuten Die Anzahl der Minuten. * * @return den ZeitString im Format hh:mm zu einer vorgegebenen Minutenanzahl. */ static gibZeitStringOfMinuten(minuten: number): string; /** * Liefert anhand der Minuten eine String-Repräsentation der Uhrzeit im Format "hh:mm". *
Beispiel: 1000 Minuten --> "16:40" * * @param minuten Die vergangenen Minuten seit 0 Uhr. * * @return anhand der Minuten eine String-Repräsentation der Uhrzeit im Format "hh:mm". */ static getStringOfUhrzeitFromMinuten(minuten: number): string; /** * Liefert die Kalenderwoche zu einem bestimmten Datum. * * @param datumISO8601 Das Datum im ISO8601-Format uuuu-MM-dd (z.B. 2014-03-14). * * @return die Kalenderwoche zu einem bestimmten Datum. */ static gibKwDesDatumsISO8601(datumISO8601: string): number; /** * Liefert das Kalenderwochenjahr zu einem bestimmten Datum. * * @param datumISO8601 das Datum im ISO8601-Format uuuu-MM-dd (z.B. 2014-03-14). * * @return die Kalenderwochenjahr zu einem bestimmten Datum. */ static gibKwJahrDesDatumsISO8601(datumISO8601: string): number; /** * Liefert den Wochentag (Mo=1...So=7) zu einem bestimmten Datum. * * @param datumISO8601 das Datum im ISO8601-Format uuuu-MM-dd (z.B. 2014-03-14). * * @return den Wochentag (Mo=1...So=7) zu einem bestimmten Datum. */ static gibWochentagDesDatumsISO8601(datumISO8601: string): number; /** * Liefert den Wochentag (Montag...Sonntag) zu einem bestimmten Datum. * * @param datumISO8601 das Datum im ISO8601-Format uuuu-MM-dd (z.B. 2014-03-14). * * @return den Wochentag (Montag...Sonntag) zu einem bestimmten Datum. */ static gibWochentagNameDesDatumsISO8601(datumISO8601: string): string | null; /** * Liefert das Schuljahr zu einem bestimmten Datum. Dabei wird von dem Stichtag des * 1.8. für den Beginn des neuen Schuljahres ausgegangen. Da das Schuljahr immer in * zwei Kalenderjahren liegt, wird immer das erste Kalenderjahr als Schuljahr angegeben. * * @param datumISO8601 das Datum im ISO8601-Format uuuu-MM-dd (z.B. 2014-03-14). * * @return das Schuljahr */ static getSchuljahrFromDateISO8601(datumISO8601: string): number; /** * Liefert das Halbjahr zu einem bestimmten Datum. Dabei wird zum Einen von dem Stichtag des * 1.8. für den Beginn des neuen Schuljahres ausgegangen und zum Anderen wird vereinfacht (!) * vom 1.2. als Beginn des neuen Halbjahres ausgegangen. * * @param datumISO8601 das Datum im ISO8601-Format uuuu-MM-dd (z.B. 2014-03-14). * * @return das Halbjahr anhand des vereinfachten Kriteriums */ static getHalbjahrFromDateISO8601(datumISO8601: string): number; /** * Liefert das Schuljahr und das Halbjahr zu einem bestimmten Datum. * Dabei wird zum Einen von dem Stichtag des 1.8. für den Beginn des neuen Schuljahres * ausgegangen und zum Anderen wird vereinfacht (!) vom 1.2. als Beginn des neuen * Halbjahres ausgegangen. * * @param datumISO8601 das Datum im ISO8601-Format uuuu-MM-dd (z.B. 2014-03-14). * * @return das Schuljahr (Index 0) und das Halbjahr (Index 1) anhand des vereinfachten Kriteriums */ static getSchuljahrUndHalbjahrFromDateISO8601(datumISO8601: string): Array | null; /** * Gibt den übergebenen Unix-Zeitstempel (Millisekunden seit dem 1.1.1970 um 0 Uhr) in der * ISO-8601-Darstellung {@code uuuu-MM-dd'T'HH:mm:ss.SSS} als String zurück. * * @param time der Zeitstempel * * @return der String mit der ISO-8601-Darstellung des Zeitstempels */ static toISO8601(time: number): string | null; /** * Liefert die Tage zwischen zwei Datumsangaben als String-Array im ISO8601-Format. * * @param startDate das Startdatum im ISO8601-Format uuuu-MM-dd (z.B. 2014-03-14). * @param endDate das Enddatum im ISO8601-Format uuuu-MM-dd (z.B. 2014-03-14). * * @return die Tage zwischen zwei Datumsangaben als String-Array im ISO8601-Format. */ static gibTageAlsDatumZwischen(startDate: string, endDate: string): Array; /** * Berechnet die Schnittmenge zweier Datumsintervalle und gibt alle Tage im gemeinsamen Zeitraum zurück. * * @param zeitraumAab Startdatum des ersten Intervalls (YYYY-MM-DD) * @param zeitraumAbis Enddatum des ersten Intervalls (YYYY-MM-DD) * @param zeitraumBab Startdatum des zweiten Intervalls (YYYY-MM-DD) * @param zeitraumBbis Enddatum des zweiten Intervalls (YYYY-MM-DD) * @return Ein Array von Strings mit allen Tagen im Format YYYY-MM-DD, die in beiden Intervallen enthalten sind. * Falls keine Überlappung besteht, wird ein leeres Array zurückgegeben. */ static berechneGemeinsameTage(zeitraumAab: string, zeitraumAbis: string, zeitraumBab: string, zeitraumBbis: string): Array; private static daysInMonth; private static istSchaltjahr; /** * Gibt das Datum des Folgetages für ein gegebenes Datum im ISO-8601-Format (YYYY-MM-DD) zurück. * * @param datumISO8601 Ein gültiges Datum im Format "YYYY-MM-DD". * @return Das Datum des Folgetages im selben Format. */ static gibDatumFolgetag(datumISO8601: string): string; transpilerCanonicalName(): string; isTranspiledInstanceOf(name: string): boolean; static class: Class; } export declare function cast_de_svws_nrw_core_utils_DateUtils(obj: unknown): DateUtils; //# sourceMappingURL=DateUtils.d.ts.map