Проверить корректность реализации класса - C#

Узнай цену своей работы

Формулировка задачи:

есть ли шанс на жизнь у данного класса? И если да то как теперь вывести все на форму?
Листинг программы
  1. class date
  2. {
  3. public const int MonthInYear = 12;
  4. public const int DayInYear = 365;
  5. public const int DayInMonth = 31;
  6. public int Year { get; set; }
  7. public int Month { get; set; }
  8. public int Day { get; set; }
  9. public date(int year, int month, int day)
  10. {
  11. Day = day;
  12. Month = month;
  13. Year = year;
  14. }
  15. public void Isk(int year, int month, int day)
  16. {
  17. if (day > 31 || day < 1)
  18. {
  19. throw new ArgumentException("Days must be at least between 1-31");
  20. }
  21. if (month > 12 || month < 1)
  22. {
  23. throw new ArgumentException("Month must be between 1-12");
  24. }
  25. if (year < 0)
  26. {
  27. throw new ArgumentException("Years must be positve");
  28. }
  29. Day = day;
  30. Month = month;
  31. Year = year;
  32. }
  33. // метод для добавления дня
  34. public void AddDay(int day)
  35. {
  36. int plusYear = day / DayInYear;
  37. day = day - plusYear * DayInYear;
  38. int plusMonth = day / DayInMonth;
  39. day = day - plusMonth * DayInMonth;
  40. switch (Month)
  41. {
  42. case 1:
  43. case 3:
  44. case 5:
  45. case 7:
  46. case 8:
  47. case 10:
  48. case 12:
  49. if (day + Day > 31)
  50. {
  51. plusMonth++;
  52. day = day - (31 - Day);
  53. }
  54. else
  55. {
  56. day = Day + day;
  57. }
  58.  
  59. if (Month + plusMonth > 12)
  60. {
  61. plusYear++;
  62. Month = Month - (12 - plusMonth);
  63. }
  64. else
  65. {
  66. Month += plusMonth;
  67. }
  68. Year += plusYear;
  69. Day = day;
  70.  
  71. break;
  72. case 4:
  73. case 6:
  74. case 9:
  75. case 11:
  76. if (day + Day > 30)
  77. {
  78. plusMonth++;
  79. day = day - (30 - Day);
  80. }
  81. else
  82. {
  83. day = Day + day;
  84. }
  85. Year += plusYear;
  86. if (Month + plusMonth > 12)
  87. {
  88. plusYear++;
  89. Month = Month - (12 - plusMonth);
  90. }
  91. else
  92. {
  93. Month += plusMonth;
  94. }
  95. Day = day;
  96. break;
  97. case 2:
  98. if (VisYear(Year))
  99. {
  100. if (day + Day > 29)
  101. {
  102. plusMonth++;
  103. day = day - (29 - Day);
  104. }
  105. else
  106. {
  107. day = Day + day;
  108. }
  109. Year += plusYear;
  110. if (Month + plusMonth > 12)
  111. {
  112. plusYear++;
  113. Month = Month - (12 - plusMonth);
  114. }
  115. else
  116. {
  117. Month += plusMonth;
  118. }
  119. Day = day;
  120. }
  121. else
  122. {
  123. if (day + Day > 28)
  124. {
  125. plusMonth++;
  126. day = day - (28 - Day);
  127. }
  128. else
  129. {
  130. day = Day + day;
  131. }
  132. Year += plusYear;
  133. if (Month + plusMonth > 12)
  134. {
  135. plusYear++;
  136. Month = Month - (12 - plusMonth);
  137. }
  138. else
  139. {
  140. Month += plusMonth;
  141. }
  142. Day = day;
  143. }
  144. break;
  145. }
  146. }
  147. // метод для проверки на високосный год
  148. public bool VisYear(int year)
  149. {
  150. bool flag = false;
  151. if (year % 4 == 0)
  152. flag = true;
  153. else
  154. return flag;
  155. if (year % 100 == 0)
  156. if (year % 400 != 0)
  157. flag = false;
  158. return flag;
  159. }
  160. // метод для изменения месяца
  161. public void AddMonth(int month)
  162. {
  163. int plusYear = month / MonthInYear;
  164. month = month - plusYear * MonthInYear;
  165. if (month + Month > 12)
  166. {
  167. plusYear++;
  168. month = month - (12 - Month);
  169. }
  170. else
  171. {
  172. month = Month + month;
  173. }
  174. Year += plusYear;
  175. Month = month;
  176.  
  177. }
  178. // метод для изменения года
  179. public void AddYear(int year)
  180. {
  181. year = Year + year;
  182. Year = year;
  183. }
  184. }
  185. }

Решение задачи: «Проверить корректность реализации класса»

textual
Листинг программы
  1. readonly Int32=365;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы