avr39ripe

cppStructBasics

Jun 1st, 2021 (edited)
945
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.12 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. struct Date
  4. {
  5.     int day;
  6.     int month;
  7.     int year;
  8. };
  9.  
  10. struct HistoryEvent
  11. {
  12.     Date eventDate;
  13.     char* note;
  14. };
  15.  
  16. void printDate(int day, int month, int year)
  17. {
  18.     std::cout << day << '.' << month << '.' << year << '\n';
  19. }
  20.  
  21.  
  22. //printDate(&myBDate);
  23.  
  24. void printDate(const Date& date)
  25. {
  26.     //const Date date;
  27.     std::cout << date.day << '.' << date.month << '.' << date.year << '\n';
  28.     //date.day = 44442;
  29. }
  30.  
  31. int compareDate(int dayA, int monthA, int yearA, int dayB, int monthB, int yearB)
  32. {
  33.     if (yearA > yearB)
  34.     {
  35.         return 1;
  36.     }
  37.     else if (yearA < yearB)
  38.     {
  39.         return -1;
  40.     }
  41.     else
  42.     {
  43.         if (monthA > monthB)
  44.         {
  45.             return 1;
  46.         }
  47.         else if (monthA < monthB)
  48.         {
  49.             return -1;
  50.         }
  51.         else
  52.         {
  53.             if (dayA > dayB)
  54.             {
  55.                 return 1;
  56.             }
  57.             else if (dayA < dayB)
  58.             {
  59.                 return -1;
  60.             }
  61.             else
  62.             {
  63.                 return 0;
  64.             }
  65.         }
  66.     }
  67. }
  68.  
  69. int compareDate(Date dateA, Date dateB)
  70. {
  71.     if (dateA.year > dateB.year)
  72.     {
  73.         return 1;
  74.     }
  75.     else if (dateA.year < dateB.year)
  76.     {
  77.         return -1;
  78.     }
  79.     else
  80.     {
  81.         if (dateA.month > dateB.month)
  82.         {
  83.             return 1;
  84.         }
  85.         else if (dateA.month < dateB.month)
  86.         {
  87.             return -1;
  88.         }
  89.         else
  90.         {
  91.             if (dateA.day > dateB.day)
  92.             {
  93.                 return 1;
  94.             }
  95.             else if (dateA.day < dateB.day)
  96.             {
  97.                 return -1;
  98.             }
  99.             else
  100.             {
  101.                 return 0;
  102.             }
  103.         }
  104.     }
  105. }
  106.  
  107. bool setDate(Date& date, int day, int month, int year)
  108. {
  109.     // get maxDays for month
  110.     const int maxDays{ 31 };
  111.  
  112.     if (day > 0 and day <= maxDays)
  113.     {
  114.         date.day = day;
  115.     }
  116.     else
  117.     {
  118.         return false;
  119.     }
  120.     if (month > 0 and month <= 12)
  121.     {
  122.         date.month = month;
  123.     }
  124.     else
  125.     {
  126.         return false;
  127.     }
  128.     if (year > 0)
  129.     {
  130.         date.year = year;
  131.     }
  132.     else
  133.     {
  134.         return false;
  135.     }
  136.  
  137.     return true;
  138. }
  139.  
  140.  
  141. Date generateDate()
  142. {
  143.     Date gen;
  144.     gen.year = rand() % 2000;
  145.     gen.month = rand() % 12 + 1;
  146.     gen.day = rand() % 31 + 1;
  147.  
  148.     return gen;
  149. }
  150.  
  151. int main()
  152. {
  153.  
  154.     //int day{ 26 };
  155.     //int month{ 7 };
  156.     //int year{ 1500 };
  157.  
  158.     //int dayOne{ 4 };
  159.     //int monthOne{ 10 };
  160.     //int yearOne{ 1450 };
  161.  
  162.     //int dayTwo{ 4 };
  163.     //int monthTwo{ 10 };
  164.     //int yearTwo{ 1450 };
  165.  
  166.     //printDate(day, month, year);
  167.     //printDate(dayOne, monthOne, yearOne);
  168.     //printDate(dayTwo, monthTwo, yearTwo);
  169.  
  170.     //std::cout << compareDate(dayOne, monthOne, yearOne, dayTwo, monthTwo, yearTwo) << '\n';
  171.  
  172.     //int days[5];
  173.     //int months[5];
  174.     //int years[5];
  175.  
  176.     //days[0] = 1;
  177.     //months[0] = 2;
  178.     //years[0] = 2005;
  179.  
  180.     /*enum Date { day, month, year };
  181.  
  182.     int dateOne[3]{ 1,12,2005};
  183.  
  184.     dateOne[Date::year] = 2005;
  185.     dateOne[Date::day] = 1;
  186.     dateOne[Date::month] = 12;*/
  187.  
  188.  
  189.  
  190.     //float number{ 42.5 };
  191.     const Date myBDate{26,7,1981};
  192.     Date ukrBDate;
  193.     Date someBDate{ myBDate };
  194.  
  195.     ukrBDate.year = 1991;
  196.     ukrBDate.month = 9;
  197.     ukrBDate.day = 24;
  198.  
  199.     //Date someBDate{ myBDate };
  200.     //someBDate = myBDate;
  201.  
  202.     //someBDate.month = myBDate.month;
  203.     //someBDate.day = myBDate.day;
  204.     //someBDate.year = myBDate.year;
  205.  
  206.  
  207.     printDate(myBDate);
  208.     printDate(ukrBDate);
  209.     printDate(someBDate);
  210.  
  211.     printDate(generateDate());
  212.  
  213.     std::cout << compareDate(myBDate, ukrBDate) << '\n';
  214.  
  215. //  std::cout << myBDate << '\n';
  216.  
  217.  
  218.     return 0;
  219. }
  220.  
  221.  
Add Comment
Please, Sign In to add comment