У меня есть функция, называемая int difenceedates indayays (string & date) < /code>.
Эта функция должна получить строковое значение как дату (Yyyy-mm-dd) и сравнить ее с датой сегодня. /p>
Я не знаю, есть ли уже что -то внутри STL, я не смог найти подходящий алгоритм. Я только что узнал, что у Boost есть решение для этого, но я не хочу использовать Boost.
int differenceDatesInDays(string& date) {
string year = date.substr(0, 4);
string month = date.substr(5,2);
string day = date.substr(8, string::npos);
int y = stoi(year);
int m = stoi(month);
int d = stoi(day);
time_t time_now = time(0);
tm* now = localtime(&time_now);
int diffY = y - (now->tm_year + 1900);
int diffM = m - (now->tm_mon + 1);
int diffD = d - (now->tm_mday);
int difference = (diffY * 365) + (diffM * 30) + diffD;
return difference;
}
< /code>
Я не знаю, как выяснить, имеет ли месяц 30, 31 или 28 дней.
Подробнее здесь: https://stackoverflow.com/questions/337 ... 2%b4s-date
C ++ Дни между датой и сегодняшней датой ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение