Advertisement
Lavig

Другий семестр. Лабораторна робота №11-12 (Завдання 2)

Apr 16th, 2025 (edited)
401
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.03 KB | None | 0 0
  1. #include <iostream>
  2. #include <windows.h>
  3.  
  4. using namespace std;
  5.  
  6. struct Date {
  7.     int year{};
  8.     int month{};
  9.     int day{};
  10. };
  11. int days_number(int year, int month, int day) {
  12.     int days_in_month[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  13.     if (year % 4 == 0) {
  14.         days_in_month[1] = 29;
  15.     }
  16.     int total_days = 0;
  17.     for (int i = 0; i < month - 1; ++i) {
  18.         total_days += days_in_month[i];
  19.     }
  20.     total_days += day;
  21.     return total_days;
  22. }
  23. int main() {
  24.     SetConsoleOutputCP(1251);
  25.     SetConsoleCP(1251);
  26.     Date date{};
  27.     while (true) {
  28.         cout << "Введіть рік: ";
  29.         cin >> date.year;
  30.         if (cin.fail()) {
  31.             cin.clear();
  32.             cin.ignore(32767, '\n');
  33.             cout << "Рік було введено неправильно. Спробуйте ще раз!" << endl;
  34.             continue;
  35.         }
  36.         else {
  37.             break;
  38.         }
  39.     }
  40.     while (true) {
  41.         cout << "Введіть номер місяця (1-12): ";
  42.         cin >> date.month;
  43.         if (cin.fail() || date.month < 1 || date.month > 12) {
  44.             cin.clear();
  45.             cin.ignore(32767, '\n');
  46.             cout << "Номер місяця було введено неправильно. Спробуйте ще раз!" << endl;
  47.             continue;
  48.         }
  49.         else {
  50.             break;
  51.         }
  52.     }
  53.     while (true) {
  54.         cout << "Введіть номер дня (1-31): ";
  55.         cin >> date.day;
  56.         if (cin.fail() || date.day < 1 || date.day > 31) {
  57.             cin.clear();
  58.             cin.ignore(32767, '\n');
  59.             cout << "Номер дня було введено неправильно. Спробуйте ще раз!" << endl;
  60.             continue;
  61.         }
  62.         else {
  63.             break;
  64.         }
  65.     }
  66.     int result = days_number(date.year, date.month, date.day);
  67.     cout << "Кількість днів від початку року до цієї дати: " << result << endl;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement