Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- using namespace std;
- void getDate(int *month, int *day, int *year);
- int checkDate(int month, int day, int year);
- void displayMessage(int status);
- int main()
- {
- int month, day, year;
- int s = 0;
- getDate(&month, &day, &year);
- do
- {
- checkDate(month, day, year);
- displayMessage(s);
- getDate(&month, &day, &year);
- }
- while (_getch() != EOF);
- }
- void getDate(int *month, int *day, int *year)
- {
- char fill;
- fill = '/';
- cout << "Enter a date in mm/dd/yyyy form: ";
- cin >> *month;
- if (cin.get() != '/')
- {
- cout << "expected /" << endl;
- }
- cin >> *day;
- if (cin.get() != '/')
- {
- cout << "expected /" << endl;
- }
- cin >> *year;
- cout << *month << fill << *day << fill << *year << endl;
- };
- int checkDate(int month, int day, int year)
- {
- if ((month = 1) || (month = 3) || (month = 5) || (month = 7) ||
- (month = 8) || (month = 10) || (month = 12))
- {
- day <= 31;
- }
- else if ((month = 4) || (month = 6) || (month = 9) || (month = 11))
- {
- day <= 30;
- }
- else if ((month = 2) && (year % 4 == 0))
- {
- day <= 29;
- }
- else if ((month = 2) && (year % 4 != 0))
- {
- day <= 28;
- };
- int status = 0;
- if ((year < 999) || (year > 10000))
- {
- status == 1;
- }
- if ((month < 1) || (month > 12))
- {
- status == 2;
- }
- else if ((day < 1) || (day > 31))
- {
- status == 3;
- }
- else if ((day < 1) || (day > 30))
- {
- status == 4;
- }
- else if ((day < 1) || (day > 29))
- {
- status == 5;
- }
- else if ((day < 1) || (day > 28))
- {
- status == 6;
- }
- return status;
- };
- void displayMessage(int status)
- {
- if (status == 0)
- {
- cout << "Good date!" << endl;
- }
- if (status == 1)
- {
- cout << "Bad year" << endl;
- }
- if (status == 2)
- {
- cout << "Bad month" << endl;
- }
- if (status == 3)
- {
- cout << "Bad day. Not 1-31" << endl;
- }
- if (status == 4)
- {
- cout << "Bad day, not 1-30" << endl;
- }
- if (status == 5)
- {
- cout << "Bad day, not 1-29" << endl;
- }
- if (status == 6)
- {
- cout << "Bad day, not 1-28" << endl;
- }
- _getch();
- }
- int s=0;
- ...
- checkDate(month, day, year); // you don't store the status
- displayMessage(s); // so s will always be 0 ! So good date !
- s=checkDate(month, day, year); // store the result of the check
- displayMessage(s); // and take it to display the message
- int checkDate(int month, int day, int year)
- {
- int status=0;
- if ((month == 1 || month == 3 || month == 5 || month == 7 ||
- month == 8 || month == 10 || month == 12) && ( day>31 || day<1) )
- {
- status = 3;
- }
- else if ((month == 4 || month == 6 || month == 9 || month == 11) && (day>30 || day<1) )
- {
- status = 4;
- }
- else if ((month == 2) && (year % 4 == 0) && (day>29 || day<1))
- {
- status = 5;
- }
- else if ((month = 2) && (year % 4 != 0) && (day>28 || day<1) )
- {
- status = 6;
- }
- else if ((year < 999) || (year > 10000))
- {
- status = 1;
- }
- if ((month < 1) || (month > 12))
- {
- status = 2;
- }
- return status;
- };
- int checkDate(int day, int month, int year) {
- if(day < 1 || day > 31) {
- return BADVALUE;
- } else if(month < 1 || month > 12) {
- return BADVALUE;
- } else if (year < MINYEAR || year > MAXYEAR) {
- return YEAROUTRANGE;
- }
- if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {
- return BADMONTHDAY;
- } else if ((month == 2) && (year % 4 == 0) && day > 29) {
- return BADMONTHYEAR;
- } else if ((month = 2) && (year % 4 != 0) && day > 28) {
- return BADMONTHYEAR;
- }
- return GOOD;
- }
Add Comment
Please, Sign In to add comment