Guest User

Untitled

a guest
Nov 20th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.85 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3.  
  4. using namespace std;
  5.  
  6. void getDate(int *month, int *day, int *year);
  7. int checkDate(int month, int day, int year);
  8. void displayMessage(int status);
  9.  
  10. int main()
  11. {
  12. int month, day, year;
  13. int s = 0;
  14.  
  15. getDate(&month, &day, &year);
  16. do
  17. {
  18. checkDate(month, day, year);
  19. displayMessage(s);
  20. getDate(&month, &day, &year);
  21. }
  22. while (_getch() != EOF);
  23. }
  24.  
  25. void getDate(int *month, int *day, int *year)
  26. {
  27. char fill;
  28. fill = '/';
  29. cout << "Enter a date in mm/dd/yyyy form: ";
  30. cin >> *month;
  31. if (cin.get() != '/')
  32. {
  33. cout << "expected /" << endl;
  34. }
  35. cin >> *day;
  36. if (cin.get() != '/')
  37. {
  38. cout << "expected /" << endl;
  39. }
  40. cin >> *year;
  41. cout << *month << fill << *day << fill << *year << endl;
  42. };
  43.  
  44. int checkDate(int month, int day, int year)
  45. {
  46. if ((month = 1) || (month = 3) || (month = 5) || (month = 7) ||
  47. (month = 8) || (month = 10) || (month = 12))
  48. {
  49. day <= 31;
  50. }
  51. else if ((month = 4) || (month = 6) || (month = 9) || (month = 11))
  52. {
  53. day <= 30;
  54. }
  55. else if ((month = 2) && (year % 4 == 0))
  56. {
  57. day <= 29;
  58. }
  59. else if ((month = 2) && (year % 4 != 0))
  60. {
  61. day <= 28;
  62. };
  63. int status = 0;
  64. if ((year < 999) || (year > 10000))
  65. {
  66. status == 1;
  67. }
  68. if ((month < 1) || (month > 12))
  69. {
  70. status == 2;
  71. }
  72. else if ((day < 1) || (day > 31))
  73. {
  74. status == 3;
  75. }
  76. else if ((day < 1) || (day > 30))
  77. {
  78. status == 4;
  79. }
  80. else if ((day < 1) || (day > 29))
  81. {
  82. status == 5;
  83. }
  84. else if ((day < 1) || (day > 28))
  85. {
  86. status == 6;
  87. }
  88. return status;
  89. };
  90.  
  91. void displayMessage(int status)
  92. {
  93. if (status == 0)
  94. {
  95. cout << "Good date!" << endl;
  96. }
  97. if (status == 1)
  98. {
  99. cout << "Bad year" << endl;
  100. }
  101. if (status == 2)
  102. {
  103. cout << "Bad month" << endl;
  104. }
  105. if (status == 3)
  106. {
  107. cout << "Bad day. Not 1-31" << endl;
  108. }
  109. if (status == 4)
  110. {
  111. cout << "Bad day, not 1-30" << endl;
  112. }
  113. if (status == 5)
  114. {
  115. cout << "Bad day, not 1-29" << endl;
  116. }
  117. if (status == 6)
  118. {
  119. cout << "Bad day, not 1-28" << endl;
  120. }
  121. _getch();
  122. }
  123.  
  124. int s=0;
  125. ...
  126. checkDate(month, day, year); // you don't store the status
  127. displayMessage(s); // so s will always be 0 ! So good date !
  128.  
  129. s=checkDate(month, day, year); // store the result of the check
  130. displayMessage(s); // and take it to display the message
  131.  
  132. int checkDate(int month, int day, int year)
  133. {
  134. int status=0;
  135.  
  136. if ((month == 1 || month == 3 || month == 5 || month == 7 ||
  137. month == 8 || month == 10 || month == 12) && ( day>31 || day<1) )
  138. {
  139. status = 3;
  140. }
  141. else if ((month == 4 || month == 6 || month == 9 || month == 11) && (day>30 || day<1) )
  142. {
  143. status = 4;
  144. }
  145. else if ((month == 2) && (year % 4 == 0) && (day>29 || day<1))
  146. {
  147. status = 5;
  148. }
  149. else if ((month = 2) && (year % 4 != 0) && (day>28 || day<1) )
  150. {
  151. status = 6;
  152. }
  153. else if ((year < 999) || (year > 10000))
  154. {
  155. status = 1;
  156. }
  157. if ((month < 1) || (month > 12))
  158. {
  159. status = 2;
  160. }
  161. return status;
  162. };
  163.  
  164. int checkDate(int day, int month, int year) {
  165. if(day < 1 || day > 31) {
  166. return BADVALUE;
  167. } else if(month < 1 || month > 12) {
  168. return BADVALUE;
  169. } else if (year < MINYEAR || year > MAXYEAR) {
  170. return YEAROUTRANGE;
  171. }
  172.  
  173. if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {
  174. return BADMONTHDAY;
  175. } else if ((month == 2) && (year % 4 == 0) && day > 29) {
  176. return BADMONTHYEAR;
  177.  
  178. } else if ((month = 2) && (year % 4 != 0) && day > 28) {
  179. return BADMONTHYEAR;
  180. }
  181. return GOOD;
  182. }
Add Comment
Please, Sign In to add comment