我有一个输入数据源,它给我一个int,其中包含自午夜以来的毫秒数。
我想将它转换成某种时间对象,以便我可以显示时间。
例如,1000 = 00:00:01
有一种简单的方法吗?我需要时间结构吗?
谢谢!
答案 0 :(得分:1)
x = ms / 1000
seconds = x % 60
x /= 60
minutes = x % 60
x /= 60
hours = x % 24
然后你可以cout
为你解析的时间。这仅适用于午夜以来的持续时间。它不会显示日期。
答案 1 :(得分:1)
你可以使用一个小帮助器结构,但这对于你的简单请求可能有点太多了:
#include <iostream>
#include <iomanip>
struct MidnightTime{
MidnightTime(unsigned int miliseconds) :
seconds((miliseconds/1000) % 60),
minutes((miliseconds/60000) % 60),
hours((miliseconds/3600000) % 24){}
unsigned int seconds, minutes, hours;
};
std::ostream& operator<<(std::ostream& out, const MidnightTime& t){
out << std::setfill('0') << std::setw(2) << t.hours << ":" <<
std::setfill('0') << std::setw(2) << t.minutes << ":" <<
std::setfill('0') << std::setw(2) << t.seconds;
return out;
}
int main(){
std::cout << MidnightTime(1000) << std::endl; // will result in 00:00:01
return 0;
}