我的老师说我必须用这样的行转换文件:
Jan Kowalski 1997 4 3
给有游泳池的人上课,比如:
string name, surname;
std::chrono::system_clock::time_point dateofbirth;
如何从 3 个整数创建时间点?我想这不是存储这种数据的最简单方法。
但是我如何从这些数据中获得持续时间?
我想我应该从以下内容开始:
using std::chrono::system_clock;
system_clock::time_point today = system_clock::now();
std::chrono::duration<int, std::ratio<60 * 60 * 24> > one_day;
最佳答案
您可以首先将出生日期存储在 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;
这个 std::tm 结构可以转换为 std::time_t ( http://en.cppreference.com/w/c/chrono/time_t ),它保存自纪元以来的秒数。
std::time_t tt = timegm(&tm);
反过来,它可用于创建您正在寻找的 std::chrono::system_clock::time_point :
std::chrono::system_clock::time_point dateofbirth = std::chrono::system_clock::from_time_t(tt);
关于C++ 如何将日期从输入(字符串年、字符串月、字符串日)转换为 time_point,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37630999/