Namespaces
Variants

Standard library header <chrono> (C++11)

From cppreference.net
Standard library headers

Dieser Header ist Teil der Datums- und Zeitbibliothek .

Inhaltsverzeichnis

Includes

(C++20)
Unterstützung für den Drei-Wege-Vergleichsoperator

Klassen

Dauer
Definiert in Namespace std::chrono
(C++11)
ein Zeitintervall
(Klassentemplate)
gibt an, dass eine Duration in eine Duration mit anderem Tick-Intervall konvertierbar ist
(Klassentemplate)
konstruiert Null-, Minimal- und Maximalwerte einer Tickanzahl eines gegebenen Typs
(Klassentemplate)
Convenience-Duration-Typedefs
Definiert in namespace std::chrono
std::chrono::nanoseconds (C++11) Durationstyp mit Period std::nano
std::chrono::microseconds (C++11) Duration-Typ mit Period std::micro
std::chrono::milliseconds (C++11) Durationstyp mit Period std::milli
std::chrono::seconds (C++11) Dauer-Typ mit Period std:: ratio < 1 >
std::chrono::minutes (C++11) Dauer-Typ mit Period std:: ratio < 60 >
std::chrono::hours (C++11) Dauer-Typ mit Period std:: ratio < 3600 >
std::chrono::days (C++20) Dauer-Typ mit Period std:: ratio < 86400 >
std::chrono::weeks (C++20) Dauer-Typ mit Periode std:: ratio < 604800 >
std::chrono::months (C++20) Dauer-Typ mit Period std:: ratio < 2629746 >
std::chrono::years (C++20) Dauer-Typ mit Period std:: ratio < 31556952 >
Zeitpunkt
Definiert in namespace std::chrono
(C++11)
ein Zeitpunkt
(Klassentemplate)
Traits-Klasse, die definiert, wie Zeitpunkte einer Uhr in eine andere umgewandelt werden
(Klassen-Template)
Uhren
Definiert in namespace std::chrono
bestimmt, ob ein Typ ein Clock ist
(Klassentemplate) (Variablentemplate)
Wanduhrzeit vom systemweiten Echtzeituhr
(Klasse)
Monotoner Taktgeber, der niemals angepasst wird
(Klasse)
die Uhr mit der kürzesten verfügbaren Taktperiode
(Klasse)
(C++20)
Clock für Koordinierte Weltzeit (UTC)
(Klasse)
(C++20)
Clock für Internationale Atomzeit (TAI)
(Klasse)
(C++20)
Clock für GPS-Zeit
(Klasse)
(C++20)
Clock verwendet für Dateizeit
(Typedef)
(C++20)
Pseudouhr zur Darstellung der Ortszeit
(Klasse)
Kalender
Definiert in namespace std::chrono
(C++20)
Tag-Klasse, die den letzten Tag oder Wochentag in einem Monat kennzeichnet
(Klasse)
(C++20)
repräsentiert einen Tag eines Monats
(Klasse)
(C++20)
repräsentiert einen Monat eines Jahres
(Klasse)
(C++20)
repräsentiert ein Jahr im gregorianischen Kalender
(Klasse)
(C++20)
repräsentiert einen Wochentag im gregorianischen Kalender
(Klasse)
repräsentiert den n ten weekday eines Monats
(Klasse)
repräsentiert den letzten weekday eines Monats
(Klasse)
(C++20)
repräsentiert einen bestimmten day eines bestimmten month
(Klasse)
repräsentiert den letzten Tag eines bestimmten month
(Klasse)
repräsentiert den n ten weekday eines bestimmten month
(Klasse)
repräsentiert den letzten weekday eines bestimmten month
(Klasse)
(C++20)
repräsentiert einen bestimmten month eines bestimmten year
(Klasse)
repräsentiert ein bestimmtes year , month und day
(Klasse)
repräsentiert den letzten Tag eines bestimmten year und month
(Klasse)
repräsentiert den n ten weekday eines bestimmten year und month
(Klasse)
repräsentiert den letzten weekday eines bestimmten year und month
(Klasse)
Tageszeit
Definiert in namespace std::chrono
(C++20)
stellt eine Tageszeit dar
(Klassentemplate)
Zeitzone
Definiert in Namespace std::chrono
(C++20)
beschreibt eine Kopie der IANA-Zeitzonendatenbank
(Klasse)
(C++20)
repräsentiert eine verknüpfte Liste von tzdb
(Klasse)
(C++20)
repräsentiert eine Zeitzone
(Klasse)
(C++20)
repräsentiert Informationen über eine Zeitzone zu einem bestimmten Zeitpunkt
(Klasse)
(C++20)
stellt Informationen über die Umwandlung von lokaler Zeit in UNIX-Zeit dar
(Klasse)
(C++20)
wählt aus, wie eine mehrdeutige Ortszeit aufgelöst werden soll
(enum)
Traits-Klasse für Zeitzonen-Zeiger, verwendet von zoned_time
(Klassen-Template)
(C++20)
repräsentiert eine Zeitzone und einen Zeitpunkt
(Klasse)
repräsentiert einen alternativen Namen für eine Zeitzone
(Klasse)
Ausnahme, die geworfen wird, um zu melden, dass eine lokale Zeit nicht existiert
(Klasse)
Ausnahme, die geworfen wird, um zu melden, dass eine lokale Zeit mehrdeutig ist
(Klasse)
Schaltsekunde
Definiert in Namespace std::chrono
enthält Informationen über eine Schaltsekundeneinfügung
(Klasse)
Schaltsekunden-Einfügungsinformation
(Klasse)
Spezialisierungen
Definiert im namespace std
spezialisiert das std::common_type Merkmal
(Klassen-Template-Spezialisierung)
spezialisiert das std::common_type Merkmal
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für duration
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für sys_time
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für utc_time
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für tai_time
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für gps_time
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für file_time
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für local_time
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für day
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für month
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für year
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für weekday
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für weekday_indexed
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für weekday_last
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für month_day
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für month_day_last
(Klassen-Templatespezialisierung)
Formatierungsunterstützung für month_weekday
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für month_weekday_last
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für year_month
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für year_month_day
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für year_month_day_last
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für year_month_weekday
(Klassen-Templatespezialisierung)
Formatierungsunterstützung für year_month_weekday_last
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für hh_mm_ss
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für sys_info
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für local_info
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für zoned_time
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::duration
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::time_point
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::day
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::month
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::year
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::weekday
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::weekday_indexed
(Klassen-Templatespezialisierung)
Hash-Unterstützung für std::chrono::weekday_last
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::month_day
(Klassen-Templatespezialisierung)
Hash-Unterstützung für std::chrono::month_day_last
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::month_weekday
(Klassen-Templatespezialisierung)
Hash-Unterstützung für std::chrono::month_weekday_last
(Klassen-Templatespezialisierung)
Hash-Unterstützung für std::chrono::year_month
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::year_month_day
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::year_month_day_last
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::year_month_weekday
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::year_month_weekday_last
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::zoned_time
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::leap_second
(Klassen-Template-Spezialisierung)
Forward-Deklarationen
Definiert in Header <functional>
(C++11)
Hash-Funktionsobjekt
(Klassentemplate)

Funktionen

Dauer
Definiert in namespace std::chrono
implementiert arithmetische Operationen mit Zeitdauern als Argumente
(Funktions-Template)
(C++11) (C++11) (entfernt in C++20) (C++11) (C++11) (C++11) (C++11) (C++20)
vergleicht zwei Zeitdauern
(Funktions-Template)
konvertiert eine Dauer in eine andere mit einem anderen Taktintervall
(Funktionsschablone)
konvertiert eine Dauer in eine andere, abrundend
(Funktions-Template)
konvertiert eine Dauer in eine andere, aufrundend
(Funktions-Template)
konvertiert eine Dauer in eine andere, rundet auf den nächsten Wert, bei Gleichheit zur geraden Zahl
(Funktions-Template)
ermittelt den absoluten Wert der Dauer
(Funktions-Template)
Zeitpunkt
Definiert in Namespace std::chrono
führt Additions- und Subtraktionsoperationen mit einem Zeitpunkt durch
(Funktionsschablone)
(C++11) (C++11) (entfernt in C++20) (C++11) (C++11) (C++11) (C++11) (C++20)
vergleicht zwei Zeitpunkte
(Funktions-Template)
konvertiert einen Zeitpunkt zu einem anderen Zeitpunkt auf derselben Uhr, mit einer anderen Dauer
(Funktions-Template)
konvertiert einen time_point zu einem anderen, abrundend
(Funktions-Template)
konvertiert einen time_point zu einem anderen, aufrundend
(Funktions-Template)
konvertiert einen time_point zu einem anderen, rundet auf den nächsten Wert, bei Gleichheit zur geraden Zahl
(Funktions-Template)
analysiert einen sys_time -Wert aus einem Stream gemäß dem angegebenen Format
(Funktionsschablone)
analysiert eine utc_time aus einem Stream gemäß dem bereitgestellten Format
(Funktionsschablone)
analysiert eine tai_time aus einem Stream gemäß dem bereitgestellten Format
(Funktionsschablone)
analysiert einen gps_time aus einem Stream gemäß dem bereitgestellten Format
(Funktions-Template)
analysiert einen file_time aus einem Stream gemäß dem angegebenen Format
(Funktionsschablone)
analysiert einen local_time aus einem Stream gemäß dem bereitgestellten Format
(Funktionsschablone)
(C++20)
Konvertiert Zeitpunkte einer Uhr zu einer anderen
(Funktions-Template)
Kalender
Definiert in namespace std::chrono
vergleicht zwei day -Werte
(Funktion)
vergleicht zwei month -Werte
(Funktion)
vergleicht zwei year Werte
(Funktion)
(C++20)
vergleicht zwei weekday Werte
(Funktion)
(C++20)
vergleicht zwei weekday_indexed Werte
(Funktion)
(C++20)
vergleicht zwei weekday_last Werte
(Funktion)
vergleicht zwei month_day -Werte
(Funktion)
vergleicht zwei month_day_last -Werte
(Funktion)
(C++20)
vergleicht zwei month_weekday -Werte
(Funktion)
(C++20)
vergleicht zwei month_weekday_last -Werte
(Funktion)
vergleicht zwei year_month Werte
(Funktion)
vergleicht zwei year_month_day -Werte
(Funktion)
vergleicht zwei year_month_day_last Werte
(Funktion)
(C++20)
vergleicht zwei year_month_weekday -Werte
(Funktion)
(C++20)
vergleicht zwei year_month_weekday_last Werte
(Funktion)
addiert oder subtrahiert eine Anzahl von Tagen und einen day , oder ermittelt die Differenz zwischen zwei day s
(Funktion)
führt arithmetische Operationen auf month s aus
(Funktion)
führt arithmetische Operationen auf year s aus
(Funktion)
führt arithmetische Operationen auf weekday s aus
(Funktion)
führt arithmetische Operationen auf year_month durch
(Funktion)
addiert oder subtrahiert ein year_month_day und eine Anzahl von Jahren oder Monaten
(Funktion)
addiert oder subtrahiert ein year_month_day_last und eine Anzahl von Jahren oder Monaten
(Funktion)
addiert oder subtrahiert ein year_month_weekday und eine Anzahl von Jahren oder Monaten
(Funktion)
addiert oder subtrahiert ein year_month_weekday_last und eine Anzahl von Jahren oder Monaten
(Funktion)
(C++20)
Konventionelle Syntax zur Erstellung von Gregorianischen Kalenderdaten
(Funktion)
Tageszeit
Definiert in Namespace std::chrono
übersetzt zwischen einem 12h/24h Zeitformat des Tages
(Funktion)
Zeitzone
Definiert in namespace std::chrono
Zugriff auf und Steuerung der globalen Zeitzonen-Datenbankinformation
(Funktion)
lokalisiert eine time_zone basierend auf ihrem Namen
(Funktion)
vergleicht zwei time_zone Objekte
(Funktion)
(C++20)
vergleicht zwei zoned_time Werte
(Funktions-Template)
vergleicht zwei time_zone_link Objekte
(Funktion)
Schaltsekunde
Definiert in namespace std::chrono
Ermittelt Schaltsekunden-Informationen aus einem utc_time Objekt
(Funktions-Template)
vergleicht zwei leap_second -Werte oder einen leap_second -Wert und einen sys_time
(Funktionstemplate)
I/O
Definiert in namespace std::chrono
(C++20)
führt Stream-Ausgabe für eine duration durch
(Funktionsschablone)
führt Stream-Ausgabe für einen sys_time durch
(Funktions-Template)
führt Stream-Ausgabe für einen utc_time durch
(Funktions-Template)
führt Stream-Ausgabe für einen tai_time durch
(Funktions-Template)
führt Stream-Ausgabe auf einem gps_time aus
(Funktions-Template)
führt Stream-Ausgabe für einen file_time durch
(Funktionsschablone)
(C++20)
gibt einen day in einen Stream aus
(Funktionsschablone)
(C++20)
gibt einen month in einen Stream aus
(Funktionsschablone)
(C++20)
gibt ein year in einen Stream aus
(Funktions-Template)
(C++20)
gibt einen weekday in einen Stream aus
(Funktionsschablone)
(C++20)
gibt einen weekday_indexed in einen Stream aus
(Funktionsschablone)
(C++20)
gibt einen weekday_last in einen Stream aus
(Funktions-Template)
(C++20)
gibt einen month_day in einen Stream aus
(Funktionsschablone)
(C++20)
gibt einen month_day_last in einen Stream aus
(Funktionstemplate)
(C++20)
gibt einen month_weekday in einen Stream aus
(Funktions-Template)
(C++20)
gibt einen month_weekday_last in einen Stream aus
(Funktions-Template)
(C++20)
gibt einen year_month in einen Stream aus
(Funktionsschablone)
(C++20)
gibt einen year_month_day in einen Stream aus
(Funktions-Template)
(C++20)
gibt einen year_month_day_last in einen Stream aus
(Funktions-Template)
(C++20)
gibt einen year_month_weekday in einen Stream aus
(Funktionstemplate)
(C++20)
gibt einen year_month_weekday_last in einen Stream aus
(Funktionsschablone)
(C++20)
gibt einen hh_mm_ss in einen Stream aus
(Funktions-Template)
(C++20)
gibt ein sys_info in einen Stream aus
(Funktions-Template)
(C++20)
gibt einen local_info in einen Stream aus
(Funktions-Template)
(C++20)
gibt einen zoned_time in einen Stream aus
(Funktions-Template)
parst einen day aus einem Stream gemäß dem bereitgestellten Format
(Funktionsschablone)
parst einen month aus einem Stream gemäß dem angegebenen Format
(Funktionsschablone)
parst ein year aus einem Stream gemäß dem bereitgestellten Format
(Funktions-Template)
parst einen weekday aus einem Stream gemäß dem bereitgestellten Format
(Funktionsschablone)
parst einen month_day aus einem Stream gemäß dem bereitgestellten Format
(Funktions-Template)
analysiert einen year_month aus einem Stream gemäß dem bereitgestellten Format
(Funktions-Template)
parst einen year_month_day aus einem Stream gemäß dem bereitgestellten Format
(Funktions-Template)
(C++20)
parst ein chrono -Objekt aus einem Stream
(Funktions-Template)
Literale
Definiert im Inline-Namespace std::literals::chrono_literals
ein std::chrono::duration Literal, das Stunden repräsentiert
(Funktion)
ein std::chrono::duration Literal, das Minuten repräsentiert
(Funktion)
ein std::chrono::duration Literal, das Sekunden repräsentiert
(Funktion)
ein std::chrono::duration Literal, das Millisekunden repräsentiert
(Funktion)
ein std::chrono::duration Literal, das Mikrosekunden repräsentiert
(Funktion)
ein std::chrono::duration Literal, das Nanosekunden repräsentiert
(Funktion)
ein std::chrono::day Literal, das einen Tag eines Monats repräsentiert
(Funktion)
ein std::chrono::year Literal, das ein bestimmtes Jahr repräsentiert
(Funktion)

Übersicht

#include <compare>
namespace std {
  namespace chrono {
    // Klassentemplate duration
    template<class Rep, class Period = ratio<1>> class duration;
    // Klassentemplate time_point
    template<class Clock, class Duration = typename Clock::duration> class time_point;
  }
  // common_type-Spezialisierungen
  template<class Rep1, class Period1, class Rep2, class Period2>
    struct common_type<chrono::duration<Rep1, Period1>,
                       chrono::duration<Rep2, Period2>>;
  template<class Clock, class Duration1, class Duration2>
    struct common_type<chrono::time_point<Clock, Duration1>,
                       chrono::time_point<Clock, Duration2>>;
  namespace chrono {
    // Anpassungsmerkmale
    template<class Rep> struct treat_as_floating_point;
    template<class Rep>
      inline constexpr bool treat_as_floating_point_v = treat_as_floating_point<Rep>::value;
    template<class Rep> struct duration_values;
    template<class T> struct is_clock;
    template<class T> inline constexpr bool is_clock_v = is_clock<T>::value;
    // Dauer-Arithmetik
    template<class Rep1, class Period1, class Rep2, class Period2>
      constexpr common_type_t<duration<Rep1, Period1>, duration<Rep2, Period2>>
        operator+(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);
    template<class Rep1, class Period1, class Rep2, class Period2>
      constexpr common_type_t<duration<Rep1, Period1>, duration<Rep2, Period2>>
        operator-(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);
    template<class Rep1, class Period, class Rep2>
      constexpr duration<common_type_t<Rep1, Rep2>, Period>
        operator*(const duration<Rep1, Period>& d, const Rep2& s);
    template<class Rep1, class Rep2, class Period>
      constexpr duration<common_type_t<Rep1, Rep2>, Period>
        operator*(const Rep1& s, const duration<Rep2, Period>& d);
    template<class Rep1, class Period, class Rep2>
      constexpr duration<common_type_t<Rep1, Rep2>, Period>
        operator/(const duration<Rep1, Period>& d, const Rep2& s);
    template<class Rep1, class Period1, class Rep2, class Period2>
      constexpr common_type_t<Rep1, Rep2>
        operator/(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);
    template<class Rep1, class Period, class Rep2>
      constexpr duration<common_type_t<Rep1, Rep2>, Period>
        operator%(const duration<Rep1, Period>& d, const Rep2& s);
    template<class Rep1, class Period1, class Rep2, class Period2>
      constexpr common_type_t<duration<Rep1, Period1>, duration<Rep2, Period2>>
        operator%(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);
    // Dauer-Vergleiche
    template<class Rep1, class Period1, class Rep2, class Period2>
      constexpr bool operator==(const duration<Rep1, Period1>& lhs,
                                const duration<Rep2, Period2>& rhs);
    template<class Rep1, class Period1, class Rep2, class Period2>
      constexpr bool operator< (const duration<Rep1, Period1>& lhs,
                                const duration<Rep2, Period2>& rhs);
    template<class Rep1, class Period1, class Rep2, class Period2>
      constexpr bool operator> (const duration<Rep1, Period1>& lhs,
                                const duration<Rep2, Period2>& rhs);
    template<class Rep1, class Period1, class Rep2, class Period2>
      constexpr bool operator<=(const duration<Rep1, Period1>& lhs,
                                const duration<Rep2, Period2>& rhs);
    template<class Rep1, class Period1, class Rep2, class Period2>
      constexpr bool operator>=(const duration<Rep1, Period1>& lhs,
                                const duration<Rep2, Period2>& rhs);
    template<class Rep1, class Period1, class Rep2, class Period2>
      requires /* siehe Beschreibung */
      constexpr auto operator<=>(const duration<Rep1, Period1>& lhs,
                                 const duration<Rep2, Period2>& rhs);
    // Konvertierungen
    template<class ToDuration, class Rep, class Period>
      constexpr ToDuration duration_cast(const duration<Rep, Period>& d);
    template<class ToDuration, class Rep, class Period>
      constexpr ToDuration floor(const duration<Rep, Period>& d);
    template<class ToDuration, class Rep, class Period>
      constexpr ToDuration ceil(const duration<Rep, Period>& d);
    template<class ToDuration, class Rep, class Period>
      constexpr ToDuration round(const duration<Rep, Period>& d);
    // Dauer-E/A
    template<class CharT, class Traits, class Rep, class Period>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os,
                   const duration<Rep, Period>& d);
    template<class CharT, class Traits, class Rep, class Period, class Alloc = allocator<CharT>>
      basic_istream<CharT, Traits>&
        from_stream(basic_istream<CharT, Traits>& is, const CharT* fmt,
                    duration<Rep, Period>& d,
                    basic_string<CharT, Traits, Alloc>* abbrev = nullptr,
                    minutes* offset = nullptr);
    // convenience typedefs
    using nanoseconds  = duration</* vorzeichenbehafteter Ganzzahltyp mit mindestens 64 Bits */, nano>;
    using microseconds = duration</* vorzeichenbehafteter Ganzzahltyp mit mindestens 55 Bits */, micro>;
    using milliseconds = duration</* vorzeichenbehafteter Ganzzahltyp mit mindestens 45 Bits */, milli>;
    using seconds      = duration</* vorzeichenbehafteter Ganzzahltyp mit mindestens 35 Bits */>;
    using minutes      = duration</* vorzeichenbehafteter Ganzzahltyp mit mindestens 29 Bits */,
                                  ratio<  60>>;
    using hours        = duration</* vorzeichenbehafteter Ganzzahltyp mit mindestens 23 Bits */,
                                  ratio<3600>>;
    using days         = duration</* vorzeichenbehafteter Ganzzahltyp mit mindestens 25 Bits */,
                                  ratio_multiply<ratio<24>, hours::Periode>>;
    using weeks        = duration</* vorzeichenbehafteter Ganzzahltyp mit mindestens 22 Bits */,
                                  ratio_multiply<ratio<7>, days::Periode>>;
    using years        = duration</* vorzeichenbehafteter Ganzzahltyp mit mindestens 17 Bits */,
                                  ratio_multiply<ratio<146097, 400>, days::Periode>>;
    using months       = duration</* vorzeichenbehafteter Ganzzahltyp mit mindestens 20 Bits */,
                                  ratio_divide<years::Periode, ratio<12>>>;
    // time_point Arithmetik
    template<class Clock, class Duration1, class Rep2, class Period2>
      constexpr time_point<Clock, common_type_t<Duration1, duration<Rep2, Period2>>>
        operator+(const time_point<Clock, Duration1>& lhs, const duration<Rep2, Period2>& rhs);
    template<class Rep1, class Period1, class Clock, class Duration2>
      constexpr time_point<Clock, common_type_t<duration<Rep1, Period1>, Duration2>>
        operator+(const duration<Rep1, Period1>& lhs, const time_point<Clock, Duration2>& rhs);
    template<class Clock, class Duration1, class Rep2, class Period2>
      constexpr time_point<Clock, common_type_t<Duration1, duration<Rep2, Period2>>>
        operator-(const time_point<Clock, Duration1>& lhs, const duration<Rep2, Period2>& rhs);
    template<class Clock, class Duration1, class Duration2>
      constexpr common_type_t<Duration1, Duration2>
        operator-(const time_point<Clock, Duration1>& lhs,
                  const time_point<Clock, Duration2>& rhs);
    // time_point-Vergleiche
    template<class Clock, class Duration1, class Duration2>
       constexpr bool operator==(const time_point<Clock, Duration1>& lhs,
                                 const time_point<Clock, Duration2>& rhs);
    template<class Clock, class Duration1, class Duration2>
       constexpr bool operator< (const time_point<Clock, Duration1>& lhs,
                                 const time_point<Clock, Duration2>& rhs);
    template<class Clock, class Duration1, class Duration2>
       constexpr bool operator> (const time_point<Clock, Duration1>& lhs,
                                 const time_point<Clock, Duration2>& rhs);
    template<class Clock, class Duration1, class Duration2>
       constexpr bool operator<=(const time_point<Clock, Duration1>& lhs,
                                 const time_point<Clock, Duration2>& rhs);
    template<class Clock, class Duration1, class Duration2>
       constexpr bool operator>=(const time_point<Clock, Duration1>& lhs,
                                 const time_point<Clock, Duration2>& rhs);
    template<class Clock, class Duration1, three_way_comparable_with<Duration1> Duration2>
       constexpr auto operator<=>(const time_point<Clock, Duration1>& lhs,
                                  const time_point<Clock, Duration2>& rhs);
    // Konvertierungen
    template<class ToDuration, class Clock, class Duration>
      constexpr time_point<Clock, ToDuration>
        time_point_cast(const time_point<Clock, Duration>& t);
    template<class ToDuration, class Clock, class Duration>
      constexpr time_point<Clock, ToDuration> floor(const time_point<Clock, Duration>& tp);
    template<class ToDuration, class Clock, class Duration>
      constexpr time_point<Clock, ToDuration> ceil(const time_point<Clock, Duration>& tp);
    template<class ToDuration, class Clock, class Duration>
      constexpr time_point<Clock, ToDuration> round(const time_point<Clock, Duration>& tp);
    // spezialisierte Algorithmen
    template<class Rep, class Period>
      constexpr duration<Rep, Period> abs(duration<Rep, Period> d);
    // class system_clock
    class system_clock;
    template<class Duration>
      using sys_time  = time_point<system_clock, Duration>;
    using sys_seconds = sys_time<seconds>;
    using sys_days    = sys_time<days>;
    template<class CharT, class Traits, class Duration>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const sys_time<Duration>& tp);
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const sys_days& dp);
    template<class CharT, class Traits, class Duration, class Alloc = allocator<CharT>>
      basic_istream<CharT, Traits>&
        from_stream(basic_istream<CharT, Traits>& is, const CharT* fmt,
                    sys_time<Duration>& tp,
                    basic_string<CharT, Traits, Alloc>* abbrev = nullptr,
                    minutes* offset = nullptr);
    // class utc_clock
    class utc_clock;
    template<class Duration>
      using utc_time  = time_point<utc_clock, Duration>;
    using utc_seconds = utc_time<seconds>;
    template<class CharT, class Traits, class Duration>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const utc_time<Duration>& t);
    template<class CharT, class Traits, class Duration, class Alloc = allocator<CharT>>
      basic_istream<CharT, Traits>&
        from_stream(basic_istream<CharT, Traits>& is, const CharT* fmt,
                    utc_time<Duration>& tp,
                    basic_string<CharT, Traits, Alloc>* abbrev = nullptr,
                    minutes* offset = nullptr);
    struct leap_second_info;
    template<class Duration>
      leap_second_info get_leap_second_info(const utc_time<Duration>& ut);
    // Klasse tai_clock
    class tai_clock;
    template<class Duration>
      using tai_time  = time_point<tai_clock, Duration>;
    using tai_seconds = tai_time<seconds>;
    template<class CharT, class Traits, class Duration>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const tai_time<Duration>& t);
    template<class CharT, class Traits, class Duration, class Alloc = allocator<CharT>>
      basic_istream<CharT, Traits>&
        from_stream(basic_istream<CharT, Traits>& is, const CharT* fmt,
                    tai_time<Duration>& tp,
                    basic_string<CharT, Traits, Alloc>* abbrev = nullptr,
                    minutes* offset = nullptr);
    // class gps_clock
    class gps_clock;
    template<class Duration>
      using gps_time  = time_point<gps_clock, Duration>;
    using gps_seconds = gps_time<seconds>;
    template<class CharT, class Traits, class Duration>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const gps_time<Duration>& t);
    template<class CharT, class Traits, class Duration, class Alloc = allocator<CharT>>
      basic_istream<CharT, Traits>&
        from_stream(basic_istream<CharT, Traits>& is, const CharT* fmt,
                    gps_time<Duration>& tp,
                    basic_string<CharT, Traits, Alloc>* abbrev = nullptr,
                    minutes* offset = nullptr);
    // type file_clock
    using file_clock = /* siehe Beschreibung */;
    template<class Duration>
      using file_time = time_point<file_clock, Duration>;
    template<class CharT, class Traits, class Duration>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const file_time<Duration>& tp);
    template<class CharT, class Traits, class Duration, class Alloc = allocator<CharT>>
      basic_istream<CharT, Traits>&
        from_stream(basic_istream<CharT, Traits>& is, const CharT* fmt,
                    file_time<Duration>& tp,
                    basic_string<CharT, Traits, Alloc>* abbrev = nullptr,
                    minutes* offset = nullptr);
    // class steady_clock
    class steady_clock;
    // class high_resolution_clock
    class high_resolution_clock;
    // lokale Zeit
    struct local_t {};
    template<class Duration>
      using local_time  = time_point<local_t, Duration>;
    using local_seconds = local_time<seconds>;
    using local_days    = local_time<days>;
    template<class CharT, class Traits, class Duration>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const local_time<Duration>& tp);
    template<class CharT, class Traits, class Duration, class Alloc = allocator<CharT>>
      basic_istream<CharT, Traits>&
        from_stream(basic_istream<CharT, Traits>& is, const CharT* fmt,
                    local_time<Duration>& tp,
                    basic_string<CharT, Traits, Alloc>* abbrev = nullptr,
                    minutes* offset = nullptr);
    // time_point Konvertierungen
    template<class DestClock, class SourceClock>
      struct clock_time_conversion;
    template<class DestClock, class SourceClock, class Duration>
      auto clock_cast(const time_point<SourceClock, Duration>& t);
    // class last_spec
    struct last_spec;
    // Klasse Tag
    class day;
    constexpr bool operator==(const day& x, const day& y) noexcept;
    constexpr strong_ordering operator<=>(const day& x, const day& y) noexcept;
    constexpr day  operator+(const day&  x, const days& y) noexcept;
    constexpr day  operator+(const days& x, const day&  y) noexcept;
    constexpr day  operator-(const day&  x, const days& y) noexcept;
    constexpr days operator-(const day&  x, const day&  y) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const day& d);
    template<class CharT, class Traits, class Alloc = allocator<CharT>>
      basic_istream<CharT, Traits>&
        from_stream(basic_istream<CharT, Traits>& is, const CharT* fmt,
                    day& d, basic_string<CharT, Traits, Alloc>* abbrev = nullptr,
                    minutes* offset = nullptr);
    // Klasse month
    class month;
    constexpr bool operator==(const month& x, const month& y) noexcept;
    constexpr strong_ordering operator<=>(const month& x, const month& y) noexcept;
    constexpr month  operator+(const month&  x, const months& y) noexcept;
    constexpr month  operator+(const months& x,  const month& y) noexcept;
    constexpr month  operator-(const month&  x, const months& y) noexcept;
    constexpr months operator-(const month&  x,  const month& y) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const month& m);
    template<class CharT, class Traits, class Alloc = allocator<CharT>>
      basic_istream<CharT, Traits>&
        from_stream(basic_istream<CharT, Traits>& is, const CharT* fmt,
                    month& m, basic_string<CharT, Traits, Alloc>* abbrev = nullptr,
                    minutes* offset = nullptr);
    // Klassenjahr
    class year;
    constexpr bool operator==(const year& x, const year& y) noexcept;
    constexpr strong_ordering operator<=>(const year& x, const year& y) noexcept;
    constexpr year  operator+(const year&  x, const years& y) noexcept;
    constexpr year  operator+(const years& x, const year&  y) noexcept;
    constexpr year  operator-(const year&  x, const years& y) noexcept;
    constexpr years operator-(const year&  x, const year&  y) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const year& y);
    template<class CharT, class Traits, class Alloc = allocator<CharT>>
      basic_istream<CharT, Traits>&
        from_stream(basic_istream<CharT, Traits>& is, const CharT* fmt,
                    year& y, basic_string<CharT, Traits, Alloc>* abbrev = nullptr,
                    minutes* offset = nullptr);
    // Klasse weekday
    class weekday;
    constexpr bool operator==(const weekday& x, const weekday& y) noexcept;
    constexpr weekday operator+(const weekday& x, const days&    y) noexcept;
    constexpr weekday operator+(const days&    x, const weekday& y) noexcept;
    constexpr weekday operator-(const weekday& x, const days&    y) noexcept;
    constexpr days    operator-(const weekday& x, const weekday& y) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const weekday& wd);
    template<class CharT, class Traits, class Alloc = allocator<CharT>>
      basic_istream<CharT, Traits>&
        from_stream(basic_istream<CharT, Traits>& is, const CharT* fmt,
                    weekday& wd, basic_string<CharT, Traits, Alloc>* abbrev = nullptr,
                    minutes* offset = nullptr);
    // class weekday_indexed
    class weekday_indexed;
    constexpr bool operator==(const weekday_indexed& x, const weekday_indexed& y) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const weekday_indexed& wdi);
    // class weekday_last
    class weekday_last;
    constexpr bool operator==(const weekday_last& x, const weekday_last& y) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const weekday_last& wdl);
    // Klasse month_day
    class month_day;
    constexpr bool operator==(const month_day& x, const month_day& y) noexcept;
    constexpr strong_ordering operator<=>(const month_day& x, const month_day& y) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const month_day& md);
    template<class CharT, class Traits, class Alloc = allocator<CharT>>
      basic_istream<CharT, Traits>&
        from_stream(basic_istream<CharT, Traits>& is, const CharT* fmt,
                    month_day& md, basic_string<CharT, Traits, Alloc>* abbrev = nullptr,
                    minutes* offset = nullptr);
    // class month_day_last
    class month_day_last;
    constexpr bool operator==(const month_day_last& x, const month_day_last& y) noexcept;
    constexpr strong_ordering operator<=>(const month_day_last& x,
                                          const month_day_last& y) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const month_day_last& mdl);
    // Klasse month_weekday
    class month_weekday;
    constexpr bool operator==(const month_weekday& x, const month_weekday& y) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const month_weekday& mwd);
    // class month_weekday_last
    class month_weekday_last;
    constexpr bool operator==(const month_weekday_last& x, const month_weekday_last& y) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const month_weekday_last& mwdl);
    // Klasse Jahr_Monat
    class year_month;
    constexpr bool operator==(const year_month& x, const year_month& y) noexcept;
    constexpr strong_ordering operator<=>(const year_month& x, const year_month& y) noexcept;
    constexpr year_month operator+(const year_month& ym, const months& dm) noexcept;
    constexpr year_month operator+(const months& dm, const year_month& ym) noexcept;
    constexpr year_month operator-(const year_month& ym, const months& dm) noexcept;
    constexpr months operator-(const year_month& x, const year_month& y) noexcept;
    constexpr year_month operator+(const year_month& ym, const years& dy) noexcept;
    constexpr year_month operator+(const years& dy, const year_month& ym) noexcept;
    constexpr year_month operator-(const year_month& ym, const years& dy) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const year_month& ym);
    template<class CharT, class Traits, class Alloc = allocator<CharT>>
      basic_istream<CharT, Traits>&
        from_stream(basic_istream<CharT, Traits>& is, const CharT* fmt,
                    year_month& ym, basic_string<CharT, Traits, Alloc>* abbrev = nullptr,
                    minutes* offset = nullptr);
    // class year_month_day
    class year_month_day;
    constexpr bool operator==(const year_month_day& x, const year_month_day& y) noexcept;
    constexpr strong_ordering operator<=>(const year_month_day& x,
                                          const year_month_day& y) noexcept;
    constexpr year_month_day operator+(const year_month_day& ymd, const months& dm) noexcept;
    constexpr year_month_day operator+(const months& dm, const year_month_day& ymd) noexcept;
    constexpr year_month_day operator+(const year_month_day& ymd, const years& dy) noexcept;
    constexpr year_month_day operator+(const years& dy, const year_month_day& ymd) noexcept;
    constexpr year_month_day operator-(const year_month_day& ymd, const months& dm) noexcept;
    constexpr year_month_day operator-(const year_month_day& ymd, const years& dy) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const year_month_day& ymd);
    template<class CharT, class Traits, class Alloc = allocator<CharT>>
      basic_istream<CharT, Traits>&
        from_stream(basic_istream<CharT, Traits>& is, const CharT* fmt,
                    year_month_day& ymd,
                    basic_string<CharT, Traits, Alloc>* abbrev = nullptr,
                    minutes* offset = nullptr);
    // class year_month_day_last
    class year_month_day_last;
    constexpr bool operator==(const year_month_day_last& x,
                              const year_month_day_last& y) noexcept;
    constexpr strong_ordering operator<=>(const year_month_day_last& x,
                                          const year_month_day_last& y) noexcept;
    constexpr year_month_day_last
      operator+(const year_month_day_last& ymdl, const months& dm) noexcept;
    constexpr year_month_day_last
      operator+(const months& dm, const year_month_day_last& ymdl) noexcept;
    constexpr year_month_day_last
      operator+(const year_month_day_last& ymdl, const years& dy) noexcept;
    constexpr year_month_day_last
      operator+(const years& dy, const year_month_day_last& ymdl) noexcept;
    constexpr year_month_day_last
      operator-(const year_month_day_last& ymdl, const months& dm) noexcept;
    constexpr year_month_day_last
      operator-(const year_month_day_last& ymdl, const years& dy) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const year_month_day_last& ymdl);
    // Klasse year_month_weekday
    class year_month_weekday;
    constexpr bool operator==(const year_month_weekday& x,
                              const year_month_weekday& y) noexcept;
    constexpr year_month_weekday
      operator+(const year_month_weekday& ymwd, const months& dm) noexcept;
    constexpr year_month_weekday
      operator+(const months& dm, const year_month_weekday& ymwd) noexcept;
    constexpr year_month_weekday
      operator+(const year_month_weekday& ymwd, const years& dy) noexcept;
    constexpr year_month_weekday
      operator+(const years& dy, const year_month_weekday& ymwd) noexcept;
    constexpr year_month_weekday
      operator-(const year_month_weekday& ymwd, const months& dm) noexcept;
    constexpr year_month_weekday
      operator-(const year_month_weekday& ymwd, const years& dy) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const year_month_weekday& ymwdi);
    // class year_month_weekday_last
    class year_month_weekday_last;
    constexpr bool operator==(const year_month_weekday_last& x,
                              const year_month_weekday_last& y) noexcept;
    constexpr year_month_weekday_last
      operator+(const year_month_weekday_last& ymwdl, const months& dm) noexcept;
    constexpr year_month_weekday_last
      operator+(const months& dm, const year_month_weekday_last& ymwdl) noexcept;
    constexpr year_month_weekday_last
      operator+(const year_month_weekday_last& ymwdl, const years& dy) noexcept;
    constexpr year_month_weekday_last
      operator+(const years& dy, const year_month_weekday_last& ymwdl) noexcept;
    constexpr year_month_weekday_last
      operator-(const year_month_weekday_last& ymwdl, const months& dm) noexcept;
    constexpr year_month_weekday_last
      operator-(const year_month_weekday_last& ymwdl, const years& dy) noexcept;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const year_month_weekday_last& ymwdl);
    // zivile Kalender konventionelle Syntax Operatoren
    constexpr year_month
      operator/(const year& y, const month& m) noexcept;
    constexpr year_month
      operator/(const year& y, int m) noexcept;
    constexpr month_day
      operator/(const month& m, const day& d) noexcept;
    constexpr month_day
      operator/(const month& m, int d) noexcept;
    constexpr month_day
      operator/(int m, const day& d) noexcept;
    constexpr month_day
      operator/(const day& d, const month& m) noexcept;
    constexpr month_day
      operator/(const day& d, int m) noexcept;
    constexpr month_day_last
      operator/(const month& m, last_spec) noexcept;
    constexpr month_day_last
      operator/(int m, last_spec) noexcept;
    constexpr month_day_last
      operator/(last_spec, const month& m) noexcept;
    constexpr month_day_last
      operator/(last_spec, int m) noexcept;
    constexpr month_weekday
      operator/(const month& m, const weekday_indexed& wdi) noexcept;
    constexpr month_weekday
      operator/(int m, const weekday_indexed& wdi) noexcept;
    constexpr month_weekday
      operator/(const weekday_indexed& wdi, const month& m) noexcept;
    constexpr month_weekday
      operator/(const weekday_indexed& wdi, int m) noexcept;
    constexpr month_weekday_last
      operator/(const month& m, const weekday_last& wdl) noexcept;
    constexpr month_weekday_last
      operator/(int m, const weekday_last& wdl) noexcept;
    constexpr month_weekday_last
      operator/(const weekday_last& wdl, const month& m) noexcept;
    constexpr month_weekday_last
      operator/(const weekday_last& wdl, int m) noexcept;
    constexpr year_month_day
      operator/(const year_month& ym, const day& d) noexcept;
    constexpr year_month_day
      operator/(const year_month& ym, int d) noexcept;
    constexpr year_month_day
      operator/(const year& y, const month_day& md) noexcept;
    constexpr year_month_day
      operator/(int y, const month_day& md) noexcept;
    constexpr year_month_day
      operator/(const month_day& md, const year& y) noexcept;
    constexpr year_month_day
      operator/(const month_day& md, int y) noexcept;
    constexpr year_month_day_last
      operator/(const year_month& ym, last_spec) noexcept;
    constexpr year_month_day_last
      operator/(const year& y, const month_day_last& mdl) noexcept;
    constexpr year_month_day_last
      operator/(int y, const month_day_last& mdl) noexcept;
    constexpr year_month_day_last
      operator/(const month_day_last& mdl, const year& y) noexcept;
    constexpr year_month_day_last
      operator/(const month_day_last& mdl, int y) noexcept;
    constexpr year_month_weekday
      operator/(const year_month& ym, const weekday_indexed& wdi) noexcept;
    constexpr year_month_weekday
      operator/(const year& y, const month_weekday& mwd) noexcept;
    constexpr year_month_weekday
      operator/(int y, const month_weekday& mwd) noexcept;
    constexpr year_month_weekday
      operator/(const month_weekday& mwd, const year& y) noexcept;
    constexpr year_month_weekday
      operator/(const month_weekday& mwd, int y) noexcept;
    constexpr year_month_weekday_last
      operator/(const year_month& ym, const weekday_last& wdl) noexcept;
    constexpr year_month_weekday_last
      operator/(const year& y, const month_weekday_last& mwdl) noexcept;
    constexpr year_month_weekday_last
      operator/(int y, const month_weekday_last& mwdl) noexcept;
    constexpr year_month_weekday_last
      operator/(const month_weekday_last& mwdl, const year& y) noexcept;
    constexpr year_month_weekday_last
      operator/(const month_weekday_last& mwdl, int y) noexcept;
    // Klassentemplate hh_mm_ss
    template<class Duration> class hh_mm_ss;
    template<class CharT, class Traits, class Duration>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const hh_mm_ss<Duration>& hms);
    // 12/24-Stunden-Funktionen
    constexpr bool is_am(const hours& h) noexcept;
    constexpr bool is_pm(const hours& h) noexcept;
    constexpr hours make12(const hours& h) noexcept;
    constexpr hours make24(const hours& h, bool is_pm) noexcept;
    // Zeitzonendatenbank
    struct tzdb;
    class tzdb_list;
    // Zugriff auf die Zeitzonendatenbank
    const tzdb& get_tzdb();
    tzdb_list& get_tzdb_list();
    const time_zone* locate_zone(string_view tz_name);
    const time_zone* current_zone();
    // Unterstützung für entfernte Zeitzonendatenbank
    const tzdb& reload_tzdb();
    string remote_version();
    // Exception-Klassen
    class nonexistent_local_time;
    class ambiguous_local_time;
    // Informationsklassen
    struct sys_info;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const sys_info& si);
    struct local_info;
    template<class CharT, class Traits>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os, const local_info& li);
    // Klasse time_zone
    enum class choose {earliest, latest};
    class time_zone;
    bool operator==(const time_zone& x, const time_zone& y) noexcept;
    strong_ordering operator<=>(const time_zone& x, const time_zone& y) noexcept;
    // Klassentemplate zoned_traits
    template<class T> struct zoned_traits;
    // Klassentemplate zoned_time
    template<class Duration, class TimeZonePtr = const time_zone*> class zoned_time;
    using zoned_seconds = zoned_time<seconds>;
    template<class Duration1, class Duration2, class TimeZonePtr>
      bool operator==(const zoned_time<Duration1, TimeZonePtr>& x,
                      const zoned_time<Duration2, TimeZonePtr>& y);
    template<class CharT, class Traits, class Duration, class TimeZonePtr>
      basic_ostream<CharT, Traits>&
        operator<<(basic_ostream<CharT, Traits>& os,
                   const zoned_time<Duration, TimeZonePtr>& t);
    // Unterstützung für Schaltsekunden
    class leap_second;
    bool operator==(const leap_second& x, const leap_second& y);
    strong_ordering operator<=>(const leap_second& x, const leap_second& y);
    template<class Duration>
      constexpr bool operator==(const leap_second& x, const sys_time<Duration>& y);
    template<class Duration>
      constexpr bool operator< (const leap_second& x, const sys_time<Duration>& y);
    template<class Duration>
      constexpr bool operator< (const sys_time<Duration>& x, const leap_second& y);
    template<class Duration>
      constexpr bool operator> (const leap_second& x, const sys_time<Duration>& y);
    template<class Duration>
      constexpr bool operator> (const sys_time<Duration>& x, const leap_second& y);
    template<class Duration>
      constexpr bool operator<=(const leap_second& x, const sys_time<Duration>& y);
    template<class Duration>
      constexpr bool operator<=(const sys_time<Duration>& x, const leap_second& y);
    template<class Duration>
      constexpr bool operator>=(const leap_second& x, const sys_time<Duration>& y);
    template<class Duration>
      constexpr bool operator>=(const sys_time<Duration>& x, const leap_second& y);
    template<class Duration>
      requires three_way_comparable_with<sys_seconds, sys_time<Duration>>
      constexpr auto operator<=>(const leap_second& x, const sys_time<Duration>& y);
    // class time_zone_link
    class time_zone_link;
    bool operator==(const time_zone_link& x, const time_zone_link& y);
    strong_ordering operator<=>(const time_zone_link& x, const time_zone_link& y);
    // Formatierung
    template<class Duration> struct /*local-time-format-t*/;    // exposition only
    template<class Duration>
      /*local-time-format-t*/<Duration>
        local_time_format(local_time<Duration> time, const string* abbrev = nullptr,
                          const seconds* offset_sec = nullptr);
  }
  template<class Rep, class Period, class CharT>
    struct formatter<chrono::duration<Rep, Period>, CharT>;
  template<class Duration, class CharT>
    struct formatter<chrono::sys_time<Duration>, CharT>;
  template<class Duration, class CharT>
    struct formatter<chrono::utc_time<Duration>, CharT>;
  template<class Duration, class CharT>
    struct formatter<chrono::tai_time<Duration>, CharT>;
  template<class Duration, class CharT>
    struct formatter<chrono::gps_time<Duration>, CharT>;
  template<class Duration, class CharT>
    struct formatter<chrono::file_time<Duration>, CharT>;
  template<class Duration, class CharT>
    struct formatter<chrono::local_time<Duration>, CharT>;
  template<class Duration, class CharT>
    struct formatter<chrono::/*local-time-format-t*/<Duration>, CharT>;
  template<class CharT> struct formatter<chrono::Tag, CharT>;
  template<class CharT> struct formatter<chrono::Monat, CharT>;
  template<class CharT> struct formatter<chrono::Jahr, CharT>;
  template<class CharT> struct formatter<chrono::Wochentag, CharT>;
  template<class CharT> struct formatter<chrono::weekday_indexed, CharT>;
  template<class CharT> struct formatter<chrono::weekday_last, CharT>;
  template<class CharT> struct formatter<chrono::month_day, CharT>;
  template<class CharT> struct formatter<chrono::month_day_last, CharT>;
  template<class CharT> struct formatter<chrono::month_weekday, CharT>;
  template<class CharT> struct formatter<chrono::month_weekday_last, CharT>;
  template<class CharT> struct formatter<chrono::year_month, CharT>;
  template<class CharT> struct formatter<chrono::year_month_day, CharT>;
  template<class CharT> struct formatter<chrono::year_month_day_last, CharT>;
  template<class CharT> struct formatter<chrono::year_month_weekday, CharT>;
  template<class CharT> struct formatter<chrono::year_month_weekday_last, CharT>;
  template<class Rep, class Period, class CharT>
    struct formatter<chrono::hh_mm_ss<duration<Rep, Period>>, CharT>;
  template<class CharT> struct formatter<chrono::sys_info, CharT>;
  template<class CharT> struct formatter<chrono::local_info, CharT>;
  template<class Duration, class TimeZonePtr, class CharT>
    struct formatter<chrono::zoned_time<Duration, TimeZonePtr>, CharT>;
  namespace chrono {
    // Parsierung
    template<class CharT, class Parsable>
      /* nicht spezifiziert */
        parse(const CharT* fmt, Parsable& tp);
    template<class CharT, class Traits, class Alloc, class Parsable>
      /* nicht spezifiziert */
        parse(const basic_string<CharT, Traits, Alloc>& format, Parsable& tp);
    template<class CharT, class traits, class Alloc, class Parsable>
      /* nicht spezifiziert */
        parse(const CharT* fmt, Parsable& tp,
              basic_string<CharT, traits, Alloc>& abbrev);
    template<class CharT, class Traits, class Alloc, class Parsable>
      /* nicht spezifiziert */
        parse(const basic_string<CharT, Traits, Alloc>& format, Parsable& tp,
              basic_string<CharT, Traits, Alloc>& abbrev);
    template<class CharT, class Parsable>
      /* nicht spezifiziert */
        parse(const CharT* fmt, Parsable& tp, minutes& offset);
    template<class CharT, class Traits, class Alloc, class Parsable>
      /* nicht spezifiziert */
        parse(const basic_string<CharT, Traits, Alloc>& format, Parsable& tp,
              minutes& offset);
    template<class CharT, class traits, class Alloc, class Parsable>
      /* nicht spezifiziert */
        parse(const CharT* fmt, Parsable& tp,
              basic_string<CharT, traits, Alloc>& abbrev, minutes& offset);
    template<class CharT, class Traits, class Alloc, class Parsable>
      /* nicht spezifiziert */
        parse(const basic_string<CharT, Traits, Alloc>& format, Parsable& tp,
              basic_string<CharT, Traits, Alloc>& abbrev, minutes& offset);
    // kalendarische Konstanten
    inline constexpr last_spec last{};
    inline constexpr weekday Sunday{0};
    inline constexpr weekday Monday{1};
    inline constexpr weekday Tuesday{2};
    inline constexpr weekday Wednesday{3};
    inline constexpr weekday Thursday{4};
    inline constexpr weekday Friday{5};
    inline constexpr weekday Saturday{6};
    inline constexpr month January{1};
    inline constexpr month February{2};
    inline constexpr month March{3};
    inline constexpr month April{4};
    inline constexpr month May{5};
    inline constexpr month June{6};
    inline constexpr month July{7};
    inline constexpr month August{8};
    inline constexpr month September{9};
    inline constexpr month October{10};
    inline constexpr month November{11};
    inline constexpr month December{12};
  }
  inline namespace literals {
  inline namespace chrono_literals {
    // Suffixe für Duration-Literale
    constexpr chrono::Stunden                    operator""h(unsigned long long);
    constexpr chrono::duration</* nicht spezifiziert */,
                               ratio<3600, 1>> operator""h(long double);
    constexpr chrono::Minuten                operator""min(unsigned long long);
    constexpr chrono::duration</* nicht spezifiziert */,
                               ratio<60, 1>> operator""min(long double);
    constexpr chrono::Sekunden                     operator""s(unsigned long long);
    constexpr chrono::duration</* nicht spezifiziert */> operator""s(long double);
    constexpr chrono::Millisekunden                       operator""ms(unsigned long long);
    constexpr chrono::duration</* nicht spezifiziert */, milli> operator""ms(long double);
    constexpr chrono::Mikrosekunden                       operator""us(unsigned long long);
    constexpr chrono::duration</* nicht spezifiziert */, micro> operator""us(long double);
    constexpr chrono::Nanosekunden                       operator""ns(unsigned long long);
    constexpr chrono::duration</* nicht spezifiziert */, nano> operator""ns(long double);
    // non-member functions
    constexpr chrono::Tag  operator""d(unsigned long long d) noexcept;
    // non-member functions
    constexpr chrono::Jahr operator""y(unsigned long long y) noexcept;
  }
  }
  namespace chrono {
    using namespace literals::chrono_literals;
  }
  // Hash-Unterstützung
  template<class T> struct hash;
  template<class Rep, class Period>
    struct hash<chrono::duration<Rep, Period>>;
  template<class Clock, class Duration>
    struct hash<chrono::time_point<Clock, Duration>>;
  template<> struct hash<chrono::Tag>;
  template<> struct hash<chrono::Monat>;
  template<> struct hash<chrono::Jahr>;
  template<> struct hash<chrono::Wochentag>;
  template<> struct hash<chrono::weekday_indexed>;
  template<> struct hash<chrono::weekday_last>;
  template<> struct hash<chrono::month_day>;
  template<> struct hash<chrono::month_day_last>;
  template<> struct hash<chrono::month_weekday>;
  template<> struct hash<chrono::month_weekday_last>;
  template<> struct hash<chrono::year_month>;
  template<> struct hash<chrono::year_month_day>;
  template<> struct hash<chrono::year_month_day_last>;
  template<> struct hash<chrono::year_month_weekday>;
  template<> struct hash<chrono::year_month_weekday_last>;
  template<class Duration, class TimeZonePtr>
    struct hash<chrono::zoned_time<Duration, TimeZonePtr>>;
  template<> struct hash<chrono::leap_second>;
}

Klassentemplate std::chrono::duration

namespace std::chrono {
  template<class Rep, class Period = ratio<1>>
  class duration {
  public:
    using rep    = Rep;
    using period = typename Period::type;
  private:
    rep rep_;       // nur zur Darstellung
  public:
    // Konstruktor/Kopieren/Zerstören
    constexpr duration() = default;
    template<class Rep2>
      constexpr explicit duration(const Rep2& r);
    template<class Rep2, class Period2>
      constexpr duration(const duration<Rep2, Period2>& d);
    ~duration() = default;
    duration(const duration&) = default;
    duration& operator=(const duration&) = default;
    // Beobachter
    constexpr rep count() const;
    // Arithmetik
    constexpr common_type_t<duration> operator+() const;
    constexpr common_type_t<duration> operator-() const;
    constexpr duration& operator++();
    constexpr duration  operator++(int);
    constexpr duration& operator--();
    constexpr duration  operator--(int);
    constexpr duration& operator+=(const duration& d);
    constexpr duration& operator-=(const duration& d);
    constexpr duration& operator*=(const rep& rhs);
    constexpr duration& operator/=(const rep& rhs);
    constexpr duration& operator%=(const rep& rhs);
    constexpr duration& operator%=(const duration& rhs);
    // Spezielle Werte
    static constexpr duration zero() noexcept;
    static constexpr duration min() noexcept;
    static constexpr duration max() noexcept;
  };
}

Klassentemplate std::chrono::time_point

namespace std::chrono {
  template<class Clock, class Duration = typename Clock::duration>
  class time_point {
  public:
    using clock    = Clock;
    using duration = Duration;
    using rep      = typename duration::rep;
    using period   = typename duration::period;
  private:
    duration d_;                                                // nur zur Darstellung
  public:
    // Konstruktoren
    constexpr time_point();                                     // hat Epochenwert
    constexpr explicit time_point(const duration& d);           // identisch mit time_point() + d
    template<class Duration2>
      constexpr time_point(const time_point<clock, Duration2>& t);
    // Beobachter
    constexpr duration time_since_epoch() const;
    // Arithmetik
    constexpr time_point& operator++();
    constexpr time_point operator++(int);
    constexpr time_point& operator--();
    constexpr time_point operator--(int);
    constexpr time_point& operator+=(const duration& d);
    constexpr time_point& operator-=(const duration& d);
    // Spezielle Werte
    static constexpr time_point min() noexcept;
    static constexpr time_point max() noexcept;
  };
}

Klassentemplate std::common_type -Spezialisierung für std::chrono::duration

namespace std {
  template<class Rep1, class Period1, class Rep2, class Period2>
    struct common_type<chrono::duration<Rep1, Period1>,
                       chrono::duration<Rep2, Period2>> {
      using type = chrono::duration<common_type_t<Rep1, Rep2>, /* siehe Beschreibung */>;
    };
}

Klassentemplate std::common_type -Spezialisierung für std::chrono::time_point

namespace std {
  template<class Clock, class Duration1, class Duration2>
    struct common_type<chrono::time_point<Clock, Duration1>,
                       chrono::time_point<Clock, Duration2>> {
      using type = chrono::time_point<Clock, common_type_t<Duration1, Duration2>>;
    };
}

Klassentemplate std::chrono::treat_as_floating_point

template<class Rep> struct treat_as_floating_point : is_floating_point<Rep> { };

Klassentemplate std::chrono::duration_values

namespace std::chrono {
  template<class Rep>
    struct duration_values {
    public:
      static constexpr Rep zero() noexcept;
      static constexpr Rep min() noexcept;
      static constexpr Rep max() noexcept;
    };
}

Klasse std::chrono::system_clock

namespace std::chrono {
  class system_clock {
  public:
    using rep        = /* siehe Beschreibung */;
    using period     = ratio</* nicht spezifiziert */, /* nicht spezifiziert */>;
    using duration   = chrono::duration<rep, period>;
    using time_point = chrono::time_point<system_clock>;
    static constexpr bool is_steady = /* nicht spezifiziert */;
    static time_point now() noexcept;
    // Abbildung zu/von C-Typ time_t
    static time_t      to_time_t  (const time_point& t) noexcept;
    static time_point  from_time_t(time_t t) noexcept;
  };
}

Klasse std:: chrono :: utc_clock

namespace std::chrono {
  class utc_clock {
  public:
    using rep                       = /* ein vorzeichenbehafteter arithmetischer Typ */;
    using period                    = ratio</* nicht spezifiziert */, /* nicht spezifiziert */>;
    using duration                  = chrono::duration<rep, period>;
    using time_point                = chrono::time_point<utc_clock>;
    static constexpr bool is_steady = /* nicht spezifiziert */;
    static time_point now();
    template<class Duration>
      static sys_time<common_type_t<Duration, seconds>>
        to_sys(const utc_time<Duration>& t);
    template<class Duration>
      static utc_time<common_type_t<Duration, seconds>>
        from_sys(const sys_time<Duration>& t);
  };
}

Klasse std:: chrono :: tai_clock

namespace std::chrono {
  class tai_clock {
  public:
    using rep                       = /* ein vorzeichenbehafteter arithmetischer Typ */;
    using period                    = ratio</* nicht spezifiziert */, /* nicht spezifiziert */>;
    using duration                  = chrono::duration<rep, period>;
    using time_point                = chrono::time_point<tai_clock>;
    static constexpr bool is_steady = /* nicht spezifiziert */;
    static time_point now();
    template<class Duration>
      static sys_time<common_type_t<Duration, seconds>>
        to_sys(const tai_time<Duration>& t);
    template<class Duration>
      static tai_time<common_type_t<Duration, seconds>>
        from_sys(const sys_time<Duration>& t);
  };
}

Klasse std:: chrono :: gps_clock

namespace std::chrono {
  class gps_clock {
  public:
    using rep                       = /* ein vorzeichenbehafteter arithmetischer Typ */;
    using period                    = ratio</* nicht spezifiziert */, /* nicht spezifiziert */>;
    using duration                  = chrono::duration<rep, period>;
    using time_point                = chrono::time_point<gps_clock>;
    static constexpr bool is_steady = /* nicht spezifiziert */;
    static time_point now();
    template<class Duration>
      static sys_time<common_type_t<Duration, seconds>>
        to_sys(const gps_time<Duration>& t);
    template<class Duration>
      static gps_time<common_type_t<Duration, seconds>>
        from_sys(const sys_time<Duration>& t);
  };
}

Klasse std::chrono::steady_clock

namespace std::chrono {
  class steady_clock {
  public:
    using rep        = /* unspecified */;
    using period     = ratio</* unspecified */, /* unspecified */>;
    using duration   = chrono::duration<rep, period>;
    using time_point = chrono::time_point</* unspecified */, duration>;
    static constexpr bool is_steady = true;
    static time_point now() noexcept;
  };
}

Klasse std::chrono::high_resolution_clock

namespace std::chrono {
  class high_resolution_clock {
  public:
    using rep        = /* nicht spezifiziert */;
    using period     = ratio</* nicht spezifiziert */, /* nicht spezifiziert */>;
    using duration   = chrono::duration<rep, period>;
    using time_point = chrono::time_point</* nicht spezifiziert */, duration>;
    static constexpr bool is_steady = /* nicht spezifiziert */;
    static time_point now() noexcept;
  };
}

Klassentemplate std:: chrono :: clock_time_conversion

namespace std::chrono {
  template<class DestClock, class SourceClock>
  struct clock_time_conversion {};
  template<class Clock>
  struct clock_time_conversion<Clock, Clock> {
    template<class Duration>
      time_point<Clock, Duration>
        operator()(const time_point<Clock, Duration>& t) const;
  };
  template<>
  struct clock_time_conversion<system_clock, system_clock> {
    template<class Duration>
      sys_time<Duration>
        operator()(const sys_time<Duration>& t) const;
  };
  template<>
  struct clock_time_conversion<utc_clock, utc_clock> {
    template<class Duration>
      utc_time<Duration>
        operator()(const utc_time<Duration>& t) const;
  };
  template<>
  struct clock_time_conversion<utc_clock, system_clock> {
    template<class Duration>
      utc_time<common_type_t<Duration, seconds>>
        operator()(const sys_time<Duration>& t) const;
  };
  template<>
  struct clock_time_conversion<system_clock, utc_clock> {
    template<class Duration>
      sys_time<common_type_t<Duration, seconds>>
        operator()(const utc_time<Duration>& t) const;
  };
  template<class SourceClock>
  struct clock_time_conversion<system_clock, SourceClock> {
    template<class Duration>
      auto operator()(const time_point<SourceClock, Duration>& t) const
        -> decltype(SourceClock::to_sys(t));
  };
  template<class DestClock>
  struct clock_time_conversion<DestClock, system_clock> {
    template<class Duration>
      auto operator()(const sys_time<Duration>& t) const
        -> decltype(DestClock::from_sys(t));
  };
  template<class SourceClock>
  struct clock_time_conversion<utc_clock, SourceClock> {
    template<class Duration>
      auto operator()(const time_point<SourceClock, Duration>& t) const
        -> decltype(SourceClock::to_utc(t));
  };
  template<class DestClock>
  struct clock_time_conversion<DestClock, utc_clock> {
    template<class Duration>
      auto operator()(const utc_time<Duration>& t) const
        -> decltype(DestClock::from_utc(t));
  };
}

Klasse std:: chrono :: last_spec

namespace std::chrono {
  struct last_spec {
    explicit last_spec() = default;
  };
}

Klasse std:: chrono :: day

namespace std::chrono {
  class day {
    unsigned char d_;           // nur zur Darstellung
  public:
    day() = default;
    constexpr explicit day(unsigned d) noexcept;
    constexpr day& operator++()    noexcept;
    constexpr day  operator++(int) noexcept;
    constexpr day& operator--()    noexcept;
    constexpr day  operator--(int) noexcept;
    constexpr day& operator+=(const days& d) noexcept;
    constexpr day& operator-=(const days& d) noexcept;
    constexpr explicit operator unsigned() const noexcept;
    constexpr bool ok() const noexcept;
  };
}

Klasse std:: chrono :: month

namespace std::chrono {
  class month {
    unsigned char m_;           // nur zur Darstellung
  public:
    month() = default;
    constexpr explicit month(unsigned m) noexcept;
    constexpr month& operator++()    noexcept;
    constexpr month  operator++(int) noexcept;
    constexpr month& operator--()    noexcept;
    constexpr month  operator--(int) noexcept;
    constexpr month& operator+=(const months& m) noexcept;
    constexpr month& operator-=(const months& m) noexcept;
    constexpr explicit operator unsigned() const noexcept;
    constexpr bool ok() const noexcept;
  };
}

Klasse std:: chrono :: year

namespace std::chrono {
  class year {
    short y_;                   // nur zur Darstellung
  public:
    year() = default;
    constexpr explicit year(int y) noexcept;
    constexpr year& operator++()    noexcept;
    constexpr year  operator++(int) noexcept;
    constexpr year& operator--()    noexcept;
    constexpr year  operator--(int) noexcept;
    constexpr year& operator+=(const years& y) noexcept;
    constexpr year& operator-=(const years& y) noexcept;
    constexpr year operator+() const noexcept;
    constexpr year operator-() const noexcept;
    constexpr bool is_leap() const noexcept;
    constexpr explicit operator int() const noexcept;
    constexpr bool ok() const noexcept;
    static constexpr year min() noexcept;
    static constexpr year max() noexcept;
  };
}

Klasse std:: chrono :: weekday

namespace std::chrono {
  class weekday {
    unsigned char wd_;          // nur zur Darstellung
  public:
    weekday() = default;
    constexpr explicit weekday(unsigned wd) noexcept;
    constexpr weekday(const sys_days& dp) noexcept;
    constexpr explicit weekday(const local_days& dp) noexcept;
    constexpr weekday& operator++()    noexcept;
    constexpr weekday  operator++(int) noexcept;
    constexpr weekday& operator--()    noexcept;
    constexpr weekday  operator--(int) noexcept;
    constexpr weekday& operator+=(const days& d) noexcept;
    constexpr weekday& operator-=(const days& d) noexcept;
    constexpr unsigned c_encoding() const noexcept;
    constexpr unsigned iso_encoding() const noexcept;
    constexpr bool ok() const noexcept;
    constexpr weekday_indexed operator[](unsigned index) const noexcept;
    constexpr weekday_last    operator[](last_spec) const noexcept;
  };
}

Klasse std:: chrono :: weekday_indexed

namespace std::chrono {
  class weekday_indexed {
    chrono::weekday  wd_;       // nur Darstellung
    unsigned char    index_;    // nur Darstellung
  public:
    weekday_indexed() = default;
    constexpr weekday_indexed(const chrono::weekday& wd, unsigned index) noexcept;
    constexpr chrono::weekday weekday() const noexcept;
    constexpr unsigned        index()   const noexcept;
    constexpr bool ok() const noexcept;
  };
}

Klasse std:: chrono :: weekday_last

namespace std::chrono {
  class weekday_last {
    chrono::weekday wd_;                // nur zur Darstellung
    public:
    constexpr explicit weekday_last(const chrono::weekday& wd) noexcept;
    constexpr chrono::weekday weekday() const noexcept;
    constexpr bool ok() const noexcept;
  };
}

Klasse std:: chrono :: month_day

namespace std::chrono {
  class month_day {
    chrono::month m_;           // nur zur Darstellung
    chrono::day   d_;           // nur zur Darstellung
  public:
    month_day() = default;
    constexpr month_day(const chrono::month& m, const chrono::day& d) noexcept;
    constexpr chrono::month month() const noexcept;
    constexpr chrono::day   day()   const noexcept;
    constexpr bool ok() const noexcept;
  };
}
**Übersetzungsdetails:** - Der Kommentar "exposition only" wurde als "nur zur Darstellung" übersetzt - Alle HTML-Tags, Attribute und Code-Blöcke wurden unverändert beibehalten - C++-spezifische Begriffe (namespace, class, constexpr, noexcept, etc.) wurden nicht übersetzt - Die ursprüngliche Formatierung und Struktur wurde vollständig erhalten

Klasse std:: chrono :: month_day_last

namespace std::chrono {
  class month_day_last {
    chrono::month m_;                   // nur zur Darstellung
  public:
    constexpr explicit month_day_last(const chrono::month& m) noexcept;
    constexpr chrono::month month() const noexcept;
    constexpr bool ok() const noexcept;
  };
}

Klasse std:: chrono :: month_weekday

namespace std::chrono {
  class month_weekday {
    chrono::month           m_;         // nur zur Darstellung
    chrono::weekday_indexed wdi_;       // nur zur Darstellung
  public:
    constexpr month_weekday(const chrono::month& m,
                            const chrono::weekday_indexed& wdi) noexcept;
    constexpr chrono::month           month()           const noexcept;
    constexpr chrono::weekday_indexed weekday_indexed() const noexcept;
    constexpr bool ok() const noexcept;
  };
}

Klasse std:: chrono :: month_weekday_last

namespace std::chrono {
  class month_weekday_last {
    chrono::month        m_;    // nur zur Darstellung
    chrono::weekday_last wdl_;  // nur zur Darstellung
  public:
    constexpr month_weekday_last(const chrono::month& m,
                                 const chrono::weekday_last& wdl) noexcept;
    constexpr chrono::month        month()        const noexcept;
    constexpr chrono::weekday_last weekday_last() const noexcept;
    constexpr bool ok() const noexcept;
  };
}

Klasse std:: chrono :: year_month

namespace std::chrono {
  class year_month {
    chrono::year  y_;           // nur zur Darstellung
    chrono::month m_;           // nur zur Darstellung
  public:
    year_month() = default;
    constexpr year_month(const chrono::year& y, const chrono::month& m) noexcept;
    constexpr chrono::year  year()  const noexcept;
    constexpr chrono::month month() const noexcept;
    constexpr year_month& operator+=(const months& dm) noexcept;
    constexpr year_month& operator-=(const months& dm) noexcept;
    constexpr year_month& operator+=(const years& dy)  noexcept;
    constexpr year_month& operator-=(const years& dy)  noexcept;
    constexpr bool ok() const noexcept;
  };
}

Klasse std:: chrono :: year_month_day

namespace std::chrono {
  class year_month_day {
    chrono::year  y_;           // nur zur Darstellung
    chrono::month m_;           // nur zur Darstellung
    chrono::day   d_;           // nur zur Darstellung
  public:
    year_month_day() = default;
    constexpr year_month_day(const chrono::year& y, const chrono::month& m,
                             const chrono::day& d) noexcept;
    constexpr year_month_day(const year_month_day_last& ymdl) noexcept;
    constexpr year_month_day(const sys_days& dp) noexcept;
    constexpr explicit year_month_day(const local_days& dp) noexcept;
    constexpr year_month_day& operator+=(const months& m) noexcept;
    constexpr year_month_day& operator-=(const months& m) noexcept;
    constexpr year_month_day& operator+=(const years& y)  noexcept;
    constexpr year_month_day& operator-=(const years& y)  noexcept;
    constexpr chrono::year  year()  const noexcept;
    constexpr chrono::month month() const noexcept;
    constexpr chrono::day   day()   const noexcept;
    constexpr          operator sys_days()   const noexcept;
    constexpr explicit operator local_days() const noexcept;
    constexpr bool ok() const noexcept;
  };
}

Klasse std:: chrono :: year_month_day_last

namespace std::chrono {
  class year_month_day_last {
    chrono::year           y_;          // nur zur Darstellung
    chrono::month_day_last mdl_;        // nur zur Darstellung
  public:
    constexpr year_month_day_last(const chrono::year& y,
                                  const chrono::month_day_last& mdl) noexcept;
    constexpr year_month_day_last& operator+=(const months& m) noexcept;
    constexpr year_month_day_last& operator-=(const months& m) noexcept;
    constexpr year_month_day_last& operator+=(const years& y)  noexcept;
    constexpr year_month_day_last& operator-=(const years& y)  noexcept;
    constexpr chrono::year           year()           const noexcept;
    constexpr chrono::month          month()          const noexcept;
    constexpr chrono::month_day_last month_day_last() const noexcept;
    constexpr chrono::day            day()            const noexcept;
    constexpr          operator sys_days()   const noexcept;
    constexpr explicit operator local_days() const noexcept;
    constexpr bool ok() const noexcept;
  };
}

Klasse std:: chrono :: year_month_weekday

namespace std::chrono {
  class year_month_weekday {
    chrono::year            y_;         // nur zur Darstellung
    chrono::month           m_;         // nur zur Darstellung
    chrono::weekday_indexed wdi_;       // nur zur Darstellung
  public:
    year_month_weekday() = default;
    constexpr year_month_weekday(const chrono::year& y, const chrono::month& m,
                                 const chrono::weekday_indexed& wdi) noexcept;
    constexpr year_month_weekday(const sys_days& dp) noexcept;
    constexpr explicit year_month_weekday(const local_days& dp) noexcept;
    constexpr year_month_weekday& operator+=(const months& m) noexcept;
    constexpr year_month_weekday& operator-=(const months& m) noexcept;
    constexpr year_month_weekday& operator+=(const years& y)  noexcept;
    constexpr year_month_weekday& operator-=(const years& y)  noexcept;
    constexpr chrono::year            year()            const noexcept;
    constexpr chrono::month           month()           const noexcept;
    constexpr chrono::weekday         weekday()         const noexcept;
    constexpr unsigned                index()           const noexcept;
    constexpr chrono::weekday_indexed weekday_indexed() const noexcept;
    constexpr          operator sys_days()   const noexcept;
    constexpr explicit operator local_days() const noexcept;
    constexpr bool ok() const noexcept;
  };
}

Klasse std:: chrono :: year_month_weekday_last

namespace std::chrono {
  class year_month_weekday_last {
    chrono::year         y_;    // nur zur Darstellung
    chrono::month        m_;    // nur zur Darstellung
    chrono::weekday_last wdl_;  // nur zur Darstellung
  public:
    constexpr year_month_weekday_last(const chrono::year& y, const chrono::month& m,
                                      const chrono::weekday_last& wdl) noexcept;
    constexpr year_month_weekday_last& operator+=(const months& m) noexcept;
    constexpr year_month_weekday_last& operator-=(const months& m) noexcept;
    constexpr year_month_weekday_last& operator+=(const years& y)  noexcept;
    constexpr year_month_weekday_last& operator-=(const years& y)  noexcept;
    constexpr chrono::year         year()         const noexcept;
    constexpr chrono::month        month()        const noexcept;
    constexpr chrono::weekday      weekday()      const noexcept;
    constexpr chrono::weekday_last weekday_last() const noexcept;
    constexpr          operator sys_days()   const noexcept;
    constexpr explicit operator local_days() const noexcept;
    constexpr bool ok() const noexcept;
  };
}

Klassentemplate std::chrono::hh_mm_ss

namespace std::chrono {
  template<class Duration> class hh_mm_ss {
  public:
    static constexpr unsigned fractional_width = /* siehe Beschreibung */;
    using precision                            = /* siehe Beschreibung */;
    constexpr hh_mm_ss() noexcept : hh_mm_ss{Duration::zero()} {}
    constexpr explicit hh_mm_ss(Duration d);
    constexpr bool is_negative() const noexcept;
    constexpr chrono::hours hours() const noexcept;
    constexpr chrono::minutes minutes() const noexcept;
    constexpr chrono::seconds seconds() const noexcept;
    constexpr precision subseconds() const noexcept;
    constexpr explicit operator precision() const noexcept;
    constexpr precision to_duration() const noexcept;
  private:
    bool            is_neg;     // nur zur Darstellung
    chrono::hours   h;          // nur zur Darstellung
    chrono::minutes m;          // nur zur Darstellung
    chrono::seconds s;          // nur zur Darstellung
    precision       ss;         // nur zur Darstellung
  };
}

Klasse std:: chrono :: tzdb

namespace std::chrono {
  struct tzdb {
    string                 version;
    vector<time_zone>      zones;
    vector<time_zone_link> links;
    vector<leap_second>    leap_seconds;
    const time_zone* locate_zone(string_view tz_name) const;
    const time_zone* current_zone() const;
  };
}

Klasse std:: chrono :: tzdb_list

namespace std::chrono {
  class tzdb_list {
  public:
    tzdb_list(const tzdb_list&) = delete;
    tzdb_list& operator=(const tzdb_list&) = delete;
    // nicht näher spezifizierte zusätzliche Konstruktoren
    class const_iterator;
    const tzdb& front() const noexcept;
    const_iterator erase_after(const_iterator p);
    const_iterator begin() const noexcept;
    const_iterator end()   const noexcept;
    const_iterator cbegin() const noexcept;
    const_iterator cend()   const noexcept;
  };
}

Klasse std:: chrono :: nonexistent_local_time

namespace std::chrono {
  class nonexistent_local_time : public runtime_error {
  public:
    template<class Duration>
      nonexistent_local_time(const local_time<Duration>& tp, const local_info& i);
  };
}

Klasse std:: chrono :: ambiguous_local_time

namespace std::chrono {
  class ambiguous_local_time : public runtime_error {
  public:
    template<class Duration>
      ambiguous_local_time(const local_time<Duration>& tp, const local_info& i);
  };
}

Klasse std:: chrono :: sys_info

namespace std::chrono {
  struct sys_info {
    sys_seconds   begin;
    sys_seconds   end;
    seconds       offset;
    minutes       save;
    string        abbrev;
  };
}

Klasse std:: chrono :: local_info

namespace std::chrono {
  struct local_info {
    static constexpr int unique      = 0;
    static constexpr int nonexistent = 1;
    static constexpr int ambiguous   = 2;
    int result;
    sys_info first;
    sys_info second;
  };
}

Klasse std:: chrono :: time_zone

namespace std::chrono {
  class time_zone {
  public:
    time_zone(time_zone&&) = default;
    time_zone& operator=(time_zone&&) = default;
    // nicht spezifizierte zusätzliche Konstruktoren
    string_view name() const noexcept;
    template<class Duration> sys_info   get_info(const sys_time<Duration>& st)   const;
    template<class Duration> local_info get_info(const local_time<Duration>& tp) const;
    template<class Duration>
      sys_time<common_type_t<Duration, seconds>>
        to_sys(const local_time<Duration>& tp) const;
    template<class Duration>
      sys_time<common_type_t<Duration, seconds>>
        to_sys(const local_time<Duration>& tp, choose z) const;
    template<class Duration>
      local_time<common_type_t<Duration, seconds>>
        to_local(const sys_time<Duration>& tp) const;
  };
}

Klassentemplate std:: chrono :: zoned_traits

namespace std::chrono {
  template<class T> struct zoned_traits {};
  template<> struct zoned_traits<const time_zone*> {
    static const time_zone* default_zone();
    static const time_zone* locate_zone(string_view name);
  };
}

Klassentemplate std:: chrono :: zoned_time

namespace std::chrono {
  template<class Duration, class TimeZonePtr = const time_zone*>
  class zoned_time {
  public:
    using duration = common_type_t<Duration, seconds>;
  private:
    TimeZonePtr        zone_;                   // exposition only
    sys_time<duration> tp_;                     // exposition only
    using traits = zoned_traits<TimeZonePtr>;   // exposition only
  public:
    zoned_time();
    zoned_time(const zoned_time&) = default;
    zoned_time& operator=(const zoned_time&) = default;
    zoned_time(const sys_time<Duration>& st);
    explicit zoned_time(TimeZonePtr z);
    explicit zoned_time(string_view name);
    template<class Duration2>
      zoned_time(const zoned_time<Duration2, TimeZonePtr>& zt);
    zoned_time(TimeZonePtr z,    const sys_time<Duration>& st);
    zoned_time(string_view name, const sys_time<Duration>& st);
    zoned_time(TimeZonePtr z,    const local_time<Duration>& tp);
    zoned_time(string_view name, const local_time<Duration>& tp);
    zoned_time(TimeZonePtr z,    const local_time<Duration>& tp, choose c);
    zoned_time(string_view name, const local_time<Duration>& tp, choose c);
    template<class Duration2, class TimeZonePtr2>
      zoned_time(TimeZonePtr z, const zoned_time<Duration2, TimeZonePtr2>& zt);
    template<class Duration2, class TimeZonePtr2>
      zoned_time(TimeZonePtr z, const zoned_time<Duration2, TimeZonePtr2>& zt, choose);
    template<class Duration2, class TimeZonePtr2>
      zoned_time(string_view name, const zoned_time<Duration2, TimeZonePtr2>& zt);
    template<class Duration2, class TimeZonePtr2>
      zoned_time(string_view name, const zoned_time<Duration2, TimeZonePtr2>& zt, choose);
    zoned_time& operator=(const sys_time<Duration>& st);
    zoned_time& operator=(const local_time<Duration>& ut);
    operator sys_time<duration>() const;
    explicit operator local_time<duration>() const;
    TimeZonePtr          get_time_zone()  const;
    local_time<duration> get_local_time() const;
    sys_time<duration>   get_sys_time()   const;
    sys_info             get_info()       const;
  };
  zoned_time() -> zoned_time<seconds>;
  template<class Duration>
    zoned_time(sys_time<Duration>)
      -> zoned_time<common_type_t<Duration, seconds>>;
  template<class TimeZonePtrOrName>
    using /*Zeitzonen-Darstellung*/ =        // exposition only
      conditional_t<is_convertible_v<TimeZonePtrOrName, string_view>,
                    const time_zone*,
                    remove_cvref_t<TimeZonePtrOrName>>;
  template<class TimeZonePtrOrName>
    zoned_time(TimeZonePtrOrName&&)
      -> zoned_time<seconds, /*Zeitzonen-Darstellung*/<TimeZonePtrOrName>>;
  template<class TimeZonePtrOrName, class Duration>
    zoned_time(TimeZonePtrOrName&&, sys_time<Duration>)
      -> zoned_time<common_type_t<Duration, seconds>,
                    /*Zeitzonen-Darstellung*/<TimeZonePtrOrName>>;
  template<class TimeZonePtrOrName, class Duration>
    zoned_time(TimeZonePtrOrName&&, local_time<Duration>,
               choose = choose::frühest)
      -> zoned_time<common_type_t<Duration, seconds>,
                    /*Zeitzonen-Darstellung*/<TimeZonePtrOrName>>;
  template<class Duration, class TimeZonePtrOrName, class TimeZonePtr2>
    zoned_time(TimeZonePtrOrName&&, zoned_time<Duration, TimeZonePtr2>,
               choose = choose::frühest)
      -> zoned_time<common_type_t<Duration, seconds>,
                    /*Zeitzonen-Darstellung*/<TimeZonePtrOrName>>;
}

Klasse std::chrono::leap_second

namespace std::chrono {
  class leap_second {
  public:
    leap_second(const leap_second&)            = default;
    leap_second& operator=(const leap_second&) = default;
    // nicht näher spezifizierte zusätzliche Konstruktoren
    constexpr sys_seconds date() const noexcept;
    constexpr seconds value() const noexcept;
  };
}
**Übersetzungsdetails:** - Der Kommentar "// unspecified additional constructors" wurde zu "// nicht näher spezifizierte zusätzliche Konstruktoren" übersetzt - Alle HTML-Tags, Attribute und Code-Elemente wurden unverändert beibehalten - C++-spezifische Begriffe wie `namespace`, `class`, `public`, `const`, `noexcept`, `constexpr` etc. wurden nicht übersetzt - Die Formatierung und Struktur des Codes bleibt vollständig erhalten

Klasse std::chrono::time_zone_link

namespace std::chrono {
  class time_zone_link {
  public:
    time_zone_link(time_zone_link&&)            = default;
    time_zone_link& operator=(time_zone_link&&) = default;
    // nicht spezifizierte zusätzliche Konstruktoren
    string_view name()   const noexcept;
    string_view target() const noexcept;
  };
}

Klassentemplate local-time-format-t

namespace std::chrono {
  template<class Duration> struct /*local-time-format-t*/ {       // nur zur Darstellung
    local_time<Duration> time;                                    // nur zur Darstellung
    const string* abbrev;                                         // nur zur Darstellung
    const seconds* offset_sec;                                    // nur zur Darstellung
  };
}