Modernes C++ programmieren

Okt 23, 2024

lst-0947-book.cpp

// 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
}