Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.85 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <string>
  4. #include <ctime>
  5. #include <vector>
  6.  
  7. using namespace std;
  8.  
  9. class Data {
  10. private:
  11. int day;
  12. int month;
  13. int year;
  14. string text = "";
  15. public:
  16. Data(int d, int m, int y) {
  17. if (d >= 1 && d <= 31 && m >= 1 && m <= 12) {
  18. day = d;
  19. month = m;
  20. year = y;
  21. } else {
  22. day = 1;
  23. month = 1;
  24. year = 1970;
  25. }
  26. }
  27.  
  28. Data() {
  29. time_t t = time(0);
  30. tm* now = localtime(&t);
  31. day = now->tm_mday;
  32. month = now->tm_mon + 1;
  33. year = now->tm_year + 1900;
  34. }
  35.  
  36. Data(Data& copy) {
  37. day = copy.day;
  38. month = copy.month;
  39. year = copy.year;
  40. text = copy.text;
  41. }
  42.  
  43. ~Data() {
  44. cout << text << endl;
  45. }
  46.  
  47. void addDays(int chosenDay) {
  48. int daysLeftToMonthsEnd;
  49. int daysLeftToAddInNextMonth;
  50.  
  51. if (month == 12) {
  52. if (day + chosenDay > 31) {
  53. daysLeftToMonthsEnd = 31 - day;
  54. daysLeftToAddInNextMonth = chosenDay - daysLeftToMonthsEnd;
  55. day = day + daysLeftToMonthsEnd;
  56. daysLeftToAddInNextMonth = daysLeftToAddInNextMonth - 1;
  57. month = 1;
  58. year++;
  59. day = 1 + daysLeftToAddInNextMonth;
  60. }
  61. else {
  62. day = day + chosenDay;
  63. }
  64. }
  65. if (month == 2) {
  66. if ((year % 4 == 0 && year % 100 == 0 && year % 400 == 0) || (year % 4 == 0 && year % 100 != 0 && year % 400 != 0)) {
  67. if (day + chosenDay > 29) {
  68. daysLeftToMonthsEnd = 29 - day;
  69. daysLeftToAddInNextMonth = chosenDay - daysLeftToMonthsEnd;
  70. day = day + daysLeftToMonthsEnd;
  71. daysLeftToAddInNextMonth = daysLeftToAddInNextMonth - 1;
  72. month++;
  73. day = 1 + daysLeftToAddInNextMonth;
  74. } else {
  75. day = day + chosenDay;
  76. }
  77. }
  78. if (year % 4 != 0) {
  79. if (day + chosenDay > 28) {
  80. daysLeftToMonthsEnd = 28 - day;
  81. daysLeftToAddInNextMonth = chosenDay - daysLeftToMonthsEnd;
  82. day = day + daysLeftToMonthsEnd;
  83. daysLeftToAddInNextMonth = daysLeftToAddInNextMonth - 1;
  84. month++;
  85. day = 1 + daysLeftToAddInNextMonth;
  86. }
  87. else {
  88. day = day + chosenDay;
  89. }
  90. }
  91.  
  92. }
  93. if ((month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10)) {
  94. if (day + chosenDay > 31) {
  95. daysLeftToMonthsEnd = 31 - day;
  96. daysLeftToAddInNextMonth = chosenDay - daysLeftToMonthsEnd;
  97. day = day + daysLeftToMonthsEnd;
  98. daysLeftToAddInNextMonth = daysLeftToAddInNextMonth - 1;
  99. month++;
  100. day = 1 + daysLeftToAddInNextMonth;
  101. } else {
  102. day = day + chosenDay;
  103. }
  104. }
  105. if ((month == 4 || month == 6 || month == 9 || month == 11)) {
  106. if (day + chosenDay > 30) {
  107. daysLeftToMonthsEnd = 30 - day;
  108. daysLeftToAddInNextMonth = chosenDay - daysLeftToMonthsEnd; //dziala
  109. day = day + daysLeftToMonthsEnd;
  110. daysLeftToAddInNextMonth = daysLeftToAddInNextMonth - 1;
  111. month++;
  112. day = 1 + daysLeftToAddInNextMonth;
  113. } else {
  114. day = day + chosenDay;
  115. }
  116. }
  117. }
  118.  
  119. void write() {
  120. cout << day << "." << month << "." << year << " Przypomnienie: " << text << endl;
  121. }
  122.  
  123. void saveMessage(string message) {
  124. text = message;
  125. }
  126. };
  127.  
  128. int main() {
  129. Data data1;
  130. Data* data2 = new Data(21, 3, 2019);
  131. string text;
  132. data1.write();
  133. data2->write();
  134. data1.saveMessage("Tresc przypomnienia");
  135. data2->saveMessage("Tresc innego przypomnienia");
  136. cout << "Przypomnienie do daty 1: ";
  137. getline(cin, text);
  138. data1.saveMessage(text);
  139. data1.write();
  140. cout << "Przypomnienie do daty 2: ";
  141. getline(cin, text);
  142. data2->saveMessage(text);
  143. data2->write();
  144. cout << "Ile dni chcesz dodac do daty nr 1?\n";
  145. int y;
  146. cin >> y;
  147. data1.addDays(y);
  148. cout << "Ile dni chcesz dodac do daty nr 2?\n";
  149. cin >> y;
  150. data2->addDays(y);
  151. data1.write();
  152. data2->write();
  153. cout << "\n#####################\nKopia daty pierwszej:\n";
  154. Data data3(data1);
  155. data3.write();
  156. cout << "\n#####################\nKopia daty drugiej:\n";
  157. Data data4(*data2);
  158. data4.write();
  159.  
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement