C++ Как сделать, чтобы находило еще предыдущий день??
#include "stdafx.h"
#include
using namespace std;
int main()
{
int d, m, y, i;
int max[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
setlocale(LC_ALL, "Russian");
cout << "Введите день(число)";
cin >> d;
cout << "Введите месяц(число)";
cin >> m;
cout << "Введите год(число)";
cin >> y;
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
max[1]++;
for (i = 0; i < 12; i++)
if (i + 1 == m & d == max[i])
{
d = 1;
m++;
break;
}
if (i == 12)
d++;
if (m == 13)
{
m = 1;
y++;
}
cout << d << " " << m << " " << y;
return 0;
}

14 Окт 2019 в 14:41
163 +1
0
Ответы
1

Для того чтобы найти предыдущий день, можно добавить следующий код после ввода пользовательских данных:

if (d == 1) {
m--;
if (m == 0) {
m = 12;
y--;
}
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) {
max[1]++;
}
d = max[m-1];
} else {
d--;
}

Этот код уменьшит значение дня на 1, если текущий день не первый в месяце. Если текущий день - первый, то он перейдет на последний день предыдущего месяца, а месяц и год будут соответственно уменьшены.

19 Апр 2024 в 11:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир