The QTime Class offers me a bit of a pickle insofar as it does not allow me to set milliseconds above certain values, thus making an entry like this invalid.:
QTime time;
time.setHMS(0,0,0,42010958); // I normally use a variable
Considering that the range of milliseconds I'm dealing with is between about 1000
and 1000000000
, I'm not terribly keen on writing a tremendous amount of of integer conversion code to sanitise each entry, but I will do what I have to do.
What is the cleanest way to convert 42010958
Milliseconds into Hours:Minutes:Seconds
in Qt?
"Cleanest" is a matter of taste, but here's how I would do it:
int milliseconds = 42010958;
int seconds = milliseconds / 1000;
milliseconds = milliseconds % 1000;
int minutes = seconds / 60;
seconds = seconds % 60;
int hours = minutes / 60;
minutes = minutes % 60;
QTime time;
time.setHMS(hours, minutes, seconds, milliseconds);
You can use QTime::fromMSecsSinceStartOfDay
.
#include <QtCore>
int main(int argc, char *argv[])
{
QTime time = QTime::fromMSecsSinceStartOfDay(42010958);
qDebug() << time.toString("hh:mm:ss:zzz");
return EXIT_SUCCESS;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With