我的老师说我必须用这样的行转换文件:
Jan Kowalski 1997 4 3
Run Code Online (Sandbox Code Playgroud)
给有游泳池的人上课,比如:
string name, surname;
std::chrono::system_clock::time_point dateofbirth;
Run Code Online (Sandbox Code Playgroud)
如何从 3 个整数创建时间点?我想这不是存储这种数据的最简单方法。
“对特定时间点的引用,例如一个人的生日、今天的黎明或下一列火车经过的时间。在这个库中,time_point 类模板的对象通过使用相对于一个纪元(这是一个固定点)的持续时间来表达这一点使用相同时钟的所有 time_point 对象共有的时间)。”
但是我如何从这些数据中获得持续时间?
我想我应该从以下内容开始:
using std::chrono::system_clock;
system_clock::time_point today = system_clock::now();
std::chrono::duration<int, std::ratio<60 * 60 * 24> > one_day;
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以首先将出生日期存储在 std::tm ( http://en.cppreference.com/w/cpp/chrono/c/tm ) 中,该结构包含分解为各个组件的日期和时间。例如:
std::tm tm;
tm.tm_mday = 3;
tm.tm_mon = 4;
tm.tm_year = 1977;
Run Code Online (Sandbox Code Playgroud)
这个 std::tm 结构可以转换为 std::time_t ( http://en.cppreference.com/w/c/chrono/time_t ),它保存自纪元以来的秒数。
std::time_t tt = timegm(&tm);
Run Code Online (Sandbox Code Playgroud)
反过来,它可用于创建您正在寻找的 std::chrono::system_clock::time_point :
std::chrono::system_clock::time_point dateofbirth = std::chrono::system_clock::from_time_t(tt);
Run Code Online (Sandbox Code Playgroud)