Загрузка данных
#include <iostream>
#include <string>
using namespace std;
int main() {
setlocale(LC_ALL, ""); // Корректная настройка русской локализации
int monthNumber;
int dayNumber;
string monthName = "";
// 1. Вывод меню и ввод месяца
cout << "[*] Календарь" << endl;
cout << "[1] Январь" << endl;
cout << "[2] Февраль" << endl;
cout << "[3] Март" << endl;
cout << "[4] Апрель" << endl;
cout << "[5] Май" << endl;
cout << "[6] Июнь" << endl;
cout << "[7] Июль" << endl;
cout << "[8] Август" << endl;
cout << "[9] Сентябрь" << endl;
cout << "[10] Октябрь" << endl;
cout << "[11] Ноябрь" << endl;
cout << "[12] Декабрь" << endl;
cout << "[*] Выберите месяц: ";
cin >> monthNumber;
// Проверяем корректность ввода месяца через switch (заменяет if)
switch (monthNumber) {
case 1: monthName = "января"; break;
case 2: monthName = "февраля"; break;
case 3: monthName = "марта"; break;
case 4: monthName = "апреля"; break;
case 5: monthName = "мая"; break;
case 6: monthName = "июня"; break;
case 7: monthName = "июля"; break;
case 8: monthName = "августа"; break;
case 9: monthName = "сентября"; break;
case 10: monthName = "октября"; break;
case 11: monthName = "ноября"; break;
case 12: monthName = "декабря"; break;
default:
cout << "Ошибка: Неверный номер месяца!" << endl;
return 0; // Завершаем программу при ошибке
}
// 2. Ввод дня месяца
cout << "[*] Выберите день месяца: ";
cin >> dayNumber;
// Главная проверка дней для каждого месяца через вложенный switch
switch (monthNumber) {
case 1: // Январь (31 день)
case 3: // Март (31 день)
case 5: // Май (31 день)
case 7: // Июль (31 день)
case 8: // Август (31 день)
case 10: // Октябрь (31 день)
case 12: // Декабрь (31 день)
switch (dayNumber) {
// Группируем все валидные кейсы от 1 до 31
case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10:
case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20:
case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28: case 29: case 30:
case 31:
cout << "[*] Календарь: " << dayNumber << " " << monthName << "." << endl;
break;
default:
cout << "Ошибка: В этом месяце нет такого дня!" << endl;
break;
}
break;
case 4: // Апрель (30 дней)
case 6: // Июнь (30 дней)
case 9: // Сентябрь (30 дней)
case 11: // Ноябрь (30 дней)
switch (dayNumber) {
case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10:
case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20:
case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28: case 29: case 30:
cout << "[*] Календарь: " << dayNumber << " " << monthName << "." << endl;
break;
default:
cout << "Ошибка: В этом месяце нет такого дня!" << endl;
break;
}
break;
case 2: // Февраль (28 дней, невисокосный по умолчанию)
switch (dayNumber) {
case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10:
case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20:
case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28:
cout << "[*] Календарь: " << dayNumber << " " << monthName << "." << endl;
break;
default:
cout << "Ошибка: В феврале всего 28 дней!" << endl;
break;
}
break;
default:
cout << "Критическая ошибка программы." << endl;
break;
}
return 0;
}