std::chrono::duration stellt eine Zeitspanne dar. Zum Beispiel wie lange ein Programm schon läuft. Eine Textausgabe in Sekunde, Minuten, Stunden u.s.w wäre also schön. Die Umrechnung von std::chrono::duration nach Stunden ist super einfach.
Die Hauptarbeit übernimmt std::chrono::duration_cast und vordefinierte Werte für Sekunden, Minunten und Stunden gibt es schon. Die Erweiterung für Tage ist entsprechend einfach.
void nicedateTime(std::chrono::duration<double> dur) { typedef std::chrono::duration<int64_t, std::ratio<24*3600>> day; auto days = std::chrono::duration_cast<day>(dur); dur -= days; std::cout << days.count() << "d "; auto HH = std::chrono::duration_cast<std::chrono::hours>(dur); dur -= HH; std::cout << HH.count() << "h "; auto min = std::chrono::duration_cast<std::chrono::minutes>(dur); dur -= min; std::cout << min.count() << "m "; auto sec = std::chrono::duration_cast<std::chrono::seconds>(dur); std::cout << sec.count() << "s "; }