//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// https://godbolt.org/z/hP7nhEW69
#include <chrono>
#include <iostream>
using namespace std::chrono;
int main() {
auto fruehl = local_days{31d/March/2024} + 2h + 1min;
try {
auto zt = zoned_time{"Europe/Berlin", fruehl};
} catch (const nonexistent_local_time& e) {
std::cout << e.what() << '\n'; // Ausnahme geworfen: existiert nicht
}
auto herbst = local_days{27d/October/2024} + 2h + 1min;
try {
auto zt = zoned_time{"Europe/Berlin", herbst};
} catch (const ambiguous_local_time& e) {
std::cout << e.what() << '\n'; // Ausnahme geworfen: existiert doppelt
}
std::cout << zoned_time{"Europe/Berlin", herbst, choose::earliest} << '\n';
// Ausgabe: 2024-10-27 02:01:00 CEST
std::cout << zoned_time{"Europe/Berlin", herbst, choose::latest} << '\n';
// Ausgabe: 2024-10-27 02:01:00 CET
}