如何使用Stoi将xx / xx / xxxx或x / x / xxxx格式的字符串Date转换为日,月和年的整数?

时间:2018-11-01 21:33:31

标签: c++

我正在尝试制定一个函数,该函数应采用格式为xx / xx / xxxx或x / x / xxxx的字符串,并找到所提供字符串的日期,月份,年份7年组成部分并将其存储在中日期数据变量。

我正在考虑使用'std :: stoi',我发现它可以直接用于普通数字,但是在日期使用方面遇到了麻烦。

1 个答案:

答案 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