Courbe_Impliquee

Data.cpp

Feb 28th, 2020
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.18 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include "Data.h"
  4.  
  5. using namespace std;
  6.  
  7. Data::Data()
  8. {
  9. day = 1;
  10. month = 1;
  11. year = 0;
  12. }
  13.  
  14. Data::Data(int d = 1, int m = 1, int y = 0)
  15. {
  16. day = d;
  17. month = m;
  18. year = y;
  19. }
  20. int Data::get_day() {
  21. return day;
  22. }
  23. int Data::get_month() {
  24. return month;
  25. }
  26. int Data::get_year() {
  27. return year;
  28. }
  29. void Data::set_day(int n) {
  30. day = n;
  31. }
  32. void Data::set_month(int n) {
  33. month = n;
  34. }
  35. void Data::set_year(int n) {
  36. year = n;
  37. }
  38. void Data::print() {
  39. if (month < 10)
  40. cout << day << ".0" << month << "." << year << endl;
  41. else cout << day << "." << month << "." << year << endl;
  42. }
  43. Data Data::Next(Data a) {
  44. int i;
  45. int mes[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  46. if (a.year % 4 == 0 && a.year % 100 != 0 || a.year % 400 == 0)
  47. mes[1]++;
  48. for (i = 0; i < 12; i++)
  49. if (i + 1 == a.month && a.day == mes[i]){
  50. a.day = 1;
  51. a.month++;
  52. break;
  53. }
  54. if (i == 12)
  55. a.day++;
  56. if (a.month == 13){
  57. a.month = 1;
  58. a.year++;
  59. }
  60. return a;
  61. }
  62. Data Data::Prew(Data a) {
  63. int i;
  64. int mes[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  65. if (a.year % 4 == 0 && a.year % 100 != 0 || a.year % 400 == 0)
  66. mes[1]++;
  67. if (a.day > 1){
  68. a.day--; return a;
  69. }
  70. if (a.month == 1) {
  71. a.day = 31;
  72. a.month = 12;
  73. a.year--;
  74. return a;
  75. }
  76. for (i = 1; i < 12; i++) {
  77. if (a.month == i + 1) {
  78. a.day = mes[i - 1];
  79. a.month = i;
  80. return a;
  81. }
  82. }
  83. }
  84. int beg_year(Data a) {
  85. int n = 0;
  86. int i;
  87. int mes[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  88. if (a.year % 4 == 0 && a.year % 100 != 0 || a.year % 400 == 0)
  89. mes[1]++;
  90. for (i = 0; i < a.month-1; i++) {
  91. n += mes[i];
  92. }
  93. return (n + a.day);
  94. }
  95. Data Data::data_beg_year(int n, int p) {
  96. Data a(1, 1, 0);
  97. int d, count = 0;
  98. int mes[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  99. if (p % 4 == 0 && p % 100 != 0 || p % 400 == 0)
  100. mes[1]++;
  101. for (int i = 0; i < 12; i++) {
  102. if (n >= mes[i]) {
  103. n -= mes[i];
  104. count++;
  105. }
  106. else d = n;
  107. }
  108. a.set_day(d + 1);
  109. a.set_month(count + 1);
  110. a.set_year(p);
  111. return a;
  112. }
  113. void day_otw(Data a) {
  114. int dotw = 0;
  115. int code_m;
  116. int code_y;
  117. switch (a.month) {
  118. case 1:code_m = 6; break;
  119. case 2:code_m = 2; break;
  120. case 3:code_m = 2; break;
  121. case 4:code_m = 5; break;
  122. case 5:code_m = 0; break;
  123. case 6:code_m = 3; break;
  124. case 7:code_m = 5; break;
  125. case 8:code_m = 1; break;
  126. case 9:code_m = 4; break;
  127. case 10:code_m = 6; break;
  128. case 11:code_m = 2; break;
  129. case 12:code_m = 4;
  130. }
  131. //code_y = (6 + (a.year % 100) + (a.year % 100) / 4) % 7;
  132. code_y = (a.year % 100) / 12 + (a.year % 100) % 12 + ((a.year % 100) % 12) / 4;
  133. if ((a.year % 4 == 0 && a.year % 100 != 0 || a.year % 400 == 0) && (a.month == 1 || a.month==2))
  134. dotw = (a.day + code_m + code_y) % 7 - 1;
  135. else
  136. dotw = (a.day + code_m + code_y) % 7;
  137. switch (dotw) {
  138.  
  139. case 1: cout << "Понедельник"; break;
  140. case 2: cout << "Вторник"; break;
  141. case 3: cout << "Среда"; break;
  142. case 4: cout << "Четверг"; break;
  143. case 5: cout << "Пятница"; break;
  144. case 6: cout << "Суббота"; break;
  145. case 7: cout << "Воскресенье";
  146. }
  147. }
Add Comment
Please, Sign In to add comment