我正在尝试制定一个函数,该函数应采用格式为xx / xx / xxxx或x / x / xxxx的字符串,并找到所提供字符串的日期,月份,年份7年组成部分并将其存储在中日期,月和年数据变量。
我正在考虑使用'std :: stoi',我发现它可以直接用于普通数字,但是在日期使用方面遇到了麻烦。
答案 0 :(得分:1)
为什么可以使用strptime()
重新发明轮子?您只需要小心,因为年份将被记录为自1900年以来的年数,并且月份被索引为0:
std::string date_string; //Assuming you have your date string here
tm tm_date;
char *ret = strptime(date_string.c_str(), "%d/%m/%Y", &tm_date);
if(!ret) {
std::cout << "ERROR: Bad input date: " << date_string << std::endl;
return 1; //or however you handle an error
}
std::cout << "You entered date with Year:" << (tm_date.tm_year + 1900)
<< ", Month:" << (tm_date.tm_mon + 1)
<< ", Day:" << tm_date.tm_mday << std::endl;
看到它在这里运行:ideone