MCPcopy Create free account
hub / github.com/NVIDIA-RTX/STBN / DurationToTimeStr

Function DurationToTimeStr

Libraries/Vector/Reporting/ProgressReporter.cpp:67–99  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

65}
66
67std::string DurationToTimeStr(std::chrono::duration<float> duration)
68{
69 std::stringstream ss;
70 using day_t = std::chrono::duration<long, std::ratio<3600 * 24>>;
71 auto d = duration_cast<day_t>(duration);
72 auto h = duration_cast<std::chrono::hours>(duration -= d);
73 auto m = duration_cast<std::chrono::minutes>(duration -= h);
74 auto s = duration_cast<std::chrono::seconds>(duration -= m);
75 auto ms = duration_cast<std::chrono::milliseconds>(duration -= s);
76 if (d.count() > 0)
77 {
78 ss << d.count() << " day"; if (d.count() > 1) { ss << "s"; } ss << ", ";
79 }
80 if (h.count() > 0)
81 {
82 ss << h.count() << " hour"; if (h.count() > 1) { ss << "s"; } ss << ", ";
83 }
84 if (m.count() > 0)
85 {
86 ss << m.count() << " minute"; if (m.count() > 1) { ss << "s"; } ss << ", ";
87 }
88
89 ss << std::setw(2) << s.count() << ".";
90 auto msCount = ms.count();
91 if (msCount < 10)
92 ss << "00";
93 else if (msCount < 100)
94 ss << "0";
95 ss << std::right << ms.count() << " second"; if (!(s.count() == 1 && ms.count() == 0)) { ss << "s"; }
96 else { ss << " "; }
97
98 return ss.str();
99}
100
101void ProgressReporter::CmdReporter()
102{

Callers 1

UpdateSALineMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected