Advertisement
plarmi

workcpp_6_1

Jun 21st, 2023
780
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.56 KB | None | 0 0
  1. #include <iostream>
  2. #include <windows.h>
  3.  
  4. class Date {
  5. private:
  6.     int day;
  7.     int month;
  8.     int year;
  9.  
  10. public:
  11.     Date(int day, int month, int year) : day(day), month(month), year(year) {}
  12.  
  13.     int operator-(const Date& other) {
  14.         // Преобразуем обе даты в количество дней
  15.         int thisDays = day + month * 30 + year * 365;
  16.         int otherDays = other.day + other.month * 30 + other.year * 365;
  17.  
  18.         return thisDays - otherDays;
  19.     }
  20.  
  21.     Date operator+(int days) {
  22.         // Добавляем указанное количество дней к текущей дате
  23.         int totalDays = day + month * 30 + year * 365;
  24.         totalDays += days;
  25.  
  26.         // Преобразуем общее количество дней обратно в дату
  27.         int newYear = totalDays / 365;
  28.         int newMonth = (totalDays % 365) / 30;
  29.         int newDay = (totalDays % 365) % 30;
  30.  
  31.         return Date(newDay, newMonth, newYear);
  32.     }
  33.     int getDay() {
  34.         return day;
  35.     }
  36.     int getMonth() {
  37.         return month;
  38.     }
  39.     int getYear() {
  40.         return year;
  41.     }
  42. };
  43.  
  44. int main() {
  45.     SetConsoleCP(1251);
  46.     SetConsoleOutputCP(1251);
  47.     Date date1(1, 1, 2023);
  48.     Date date2(31, 12, 2022);
  49.  
  50.     int diff = date1 - date2;
  51.     std::cout << "Разница в днях: " << diff << std::endl;
  52.  
  53.     Date newDate = date1 + 10;
  54.     std::cout << "Новая дата: " << newDate.getDay() << "." << newDate.getMonth() << "." << newDate.getYear() << std::endl;
  55.  
  56.     return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement