Извлеките столетие даты из строки - PullRequest
0 голосов
/ 09 июля 2020

Моя задача - вывести текущий век на заданную дату. Дата может быть представлена ​​как string; например, 19.03.2022.

Как я могу получить год и век таких строк?

Ответы [ 2 ]

3 голосов
/ 09 июля 2020
string date = "19.03.2022";
int century = (date[6] - '0') * 10 + (date[7] - '0');
if(date[8] != '0' || date[9] != '0') century++;
cout<<century<<endl;

Вывод: 21

Сложность: O (1)

2 голосов
/ 09 июля 2020

Год данного string всегда содержится в последних четырех символах, поэтому вы можете использовать string::substr, а затем std::stoi, чтобы получить год:

string str = "19.03.2022";
int year = stoi(str.substr(6, 4)); // year = "2022"

После этого вы можно использовать year для вычисления века:

int century = year/100 + 1; // century = 21
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...