Как грамотно сделать проверку даты типа string?

Пользователь вводит дату рождения, хочу проверить ее на корректность. То есть что бы день был не меньше 01 и не больше 31, что бы месяц был от 1 до 12 и год тоже. Формат даты выбрал string dats=( ..****); создать отдельную переменную string day, присвоить ей 0 и 1 символы dats и потом day перевести в инт и проверить уже на число. Так же и с месяцев и годом. Вот мой код, выдает ошибку. Если есть какие то другие решения, то с удовольствием выслушаю и возьму в свой код. А да забыл, на вход в функцию передаем минимальный год рождения, например 1900 для некоторых объектов, для других 2000. Но это так дополнение

string GetDate(int min_year)
{
    
    cin.ignore(20, '\n');
     string dats;
    getline(cin, dats);
    string day;
    day[0] = dats[0];
    day[1] = dats[1];  
    cout << day;
    return 0;

}

Ответы (0 шт):