#include #include #include #include using namespace std; // Функция для преобразования даты в количество дней с начала эры int daysBetweenDates(const tm& startDate, const tm& endDate) { // Преобразуем структуры tm в time_t time_t startTime = mktime(const_cast(&startDate)); time_t endTime = mktime(const_cast(&endDate)); // Разница в секундах между двумя датами double seconds = difftime(endTime, startTime); // Переводим секунды в дни return seconds / (60 * 60 * 24); } int main() { // Входные данные tm startDate = {}; tm endDate = {}; double principal; double annualRate; // Ввод даты начала cout << "Введите дату начала ссуды (дд мм гггг): "; cin >> startDate.tm_mday >> startDate.tm_mon >> startDate.tm_year; startDate.tm_mon--; // Месяцы начинаются с 0 startDate.tm_year -= 1900; // Год от начала эры // Ввод даты конца cout << "Введите дату конца ссуды (дд мм гггг): "; cin >> endDate.tm_mday >> endDate.tm_mon >> endDate.tm_year; endDate.tm_mon--; // Месяцы начинаются с 0 endDate.tm_year -= 1900; // Год от начала эры // Ввод размера ссуды cout << "Введите размер ссуды: "; cin >> principal; // Ввод процентной ставки cout << "Введите годовую процентную ставку (в процентах): "; cin >> annualRate; annualRate /= 100; // Переводим в десятичные дроби // Подсчёт количества дней между датами int days = daysBetweenDates(startDate, endDate); // Расчёт конечной суммы долга double amount = principal * pow((1 + annualRate / 365), days); // Вывод результата cout << fixed << setprecision(2); cout << "Конечная сумма долга: " << amount << endl; return 0; }