Получил следующий URL - https://barbaraperes.com/2017/08/31/2017_08_31.csv, 2017 года, 08 месяца и 31 дня.
В настоящее время я создаю сценарий, который работает со всеми днями, месяцами и годами сданный момент в настоящее время. Для каждого дня скрипт изменяет URL (строку), вставляя дни, месяцы и годы, и открывает его .
Это текущий код
#include <time.h>
#include <string>
#include <iostream>
int main() {
struct tm date;
date.tm_year = 2007 - 1900; // tm_year (int) years since 1900
date.tm_mon = 6; // tm_mon (int) months since January (0-11)
date.tm_mday = 1; // tm_mday (int) day of the month (1-31)
time_t end_date = time(NULL);
std::cout << " =========================================================== \n";
std::cout << "Let's go!\n";
std::cout << " =========================================================== \n";
for (; mktime(&date) < end_date; ++date.tm_mday) {
std::cout << "Defining the new date... \n";
char year[16];
char month[16];
char day[16];
strftime(year, sizeof(year), "%Y", &date);
strftime(month, sizeof(month), "%m", &date); // %m writes month as a decimal number (01-12)
strftime(day, sizeof(day), "%d", &date);
std::cout << "New date defined! \n";
std::cout << "Year: " << year << "\n";
std::cout << "Month: "<< month << "\n";
std::cout << "Day: "<< day << "\n\n";
std::cout << "Make the url dynamic: \n";
std::string url = "https://barbaraperes.com////__.csv";
// https://barbaraperes.com/2017/08/31/2017_08_31.csv
std::string str1 = year;
std::string str2 = month;
std::string str3 = day;
url.insert(25, str1);
url.insert(30, str2);
url.insert(33, str3);
url.insert(36, str1);
url.insert(41, str2);
url.insert(44, str3);
std::cout << "This is the dynamic url: " << url << "\n\n";
std::cout << " =========================================================== \n";
}
std::cout << " =========================================================== \n";
}
Он работает нормально, пока день не достигнет 31, как мы можем видеть на следующем изображении
![Output](https://i.stack.imgur.com/a4hhs.png)
Как только день достигает 31 (конец первого месяца, которыйв июле), он начнет печатать пустые дни, и месяц не изменится на 08 (август)
![Output_no_day](https://i.stack.imgur.com/fclQr.png)
Как мы можем решить эту проблему?