{"id":3363,"date":"2018-02-11T13:39:15","date_gmt":"2018-02-11T12:39:15","guid":{"rendered":"http:\/\/roboblog.fatal-fury.de\/?p=3363"},"modified":"2018-02-11T13:39:15","modified_gmt":"2018-02-11T12:39:15","slug":"c-guns-stdchronoduration-to-nice-human-readable-text","status":"publish","type":"post","link":"http:\/\/roboblog.fatal-fury.de\/?p=3363","title":{"rendered":"C++ Guns: std::chrono::duration to nice human readable text"},"content":{"rendered":"<p>std::chrono::duration stellt eine Zeitspanne dar. Zum Beispiel wie lange ein Programm schon l\u00e4uft. Eine Textausgabe in Sekunde, Minuten, Stunden u.s.w w\u00e4re also sch\u00f6n. Die Umrechnung von std::chrono::duration nach Stunden ist super einfach.<br \/>\nDie Hauptarbeit \u00fcbernimmt std::chrono::duration_cast und vordefinierte Werte f\u00fcr Sekunden, Minunten und Stunden gibt es schon. Die Erweiterung f\u00fcr Tage ist entsprechend einfach.<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nvoid nicedateTime(std::chrono::duration&lt;double&gt; dur) {\r\n  typedef std::chrono::duration&lt;int64_t, std::ratio&lt;24*3600&gt;&gt; day;\r\n\r\n  auto days = std::chrono::duration_cast&lt;day&gt;(dur);\r\n  dur -= days;\r\n  std::cout &lt;&lt; days.count() &lt;&lt; &quot;d &quot;;\r\n\r\n  auto HH = std::chrono::duration_cast&lt;std::chrono::hours&gt;(dur);\r\n  dur -= HH;\r\n  std::cout &lt;&lt; HH.count() &lt;&lt; &quot;h &quot;;\r\n\r\n  auto min = std::chrono::duration_cast&lt;std::chrono::minutes&gt;(dur);\r\n  dur -= min;\r\n  std::cout &lt;&lt; min.count() &lt;&lt; &quot;m &quot;;\r\n\r\n  auto sec = std::chrono::duration_cast&lt;std::chrono::seconds&gt;(dur);\r\n  std::cout &lt;&lt; sec.count() &lt;&lt; &quot;s &quot;;\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>std::chrono::duration stellt eine Zeitspanne dar. Zum Beispiel wie lange ein Programm schon l\u00e4uft. Eine Textausgabe in Sekunde, Minuten, Stunden u.s.w w\u00e4re also sch\u00f6n. Die Umrechnung von std::chrono::duration nach Stunden ist super einfach. Die Hauptarbeit \u00fcbernimmt std::chrono::duration_cast und vordefinierte Werte f\u00fcr Sekunden, Minunten und Stunden gibt es schon. Die Erweiterung f\u00fcr Tage ist entsprechend einfach. void [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[17],"class_list":["post-3363","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-cpp"],"_links":{"self":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/3363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3363"}],"version-history":[{"count":5,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/3363\/revisions"}],"predecessor-version":[{"id":3620,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/3363\/revisions\/3620"}],"wp:attachment":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3363"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}