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; }
Для того чтобы найти предыдущий день, можно добавить следующий код после ввода пользовательских данных:
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, если текущий день не первый в месяце. Если текущий день - первый, то он перейдет на последний день предыдущего месяца, а месяц и год будут соответственно уменьшены.
Для того чтобы найти предыдущий день, можно добавить следующий код после ввода пользовательских данных:
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, если текущий день не первый в месяце. Если текущий день - первый, то он перейдет на последний день предыдущего месяца, а месяц и год будут соответственно уменьшены.