const bool Date::isValidDate() const { if(year<1) return false; if(!isValidMonth()) return false; if(day>daysInMonth(month)) return false; return true; }
int main( int argc, char *argv[] ){ /******************************************************************************* main function *******************************************************************************/ int month, year, daycode; int time_systimeyear = 2016, time_systimemonth = 5; if( argc == 1 ){ month = time_systimemonth; year = time_systimeyear; // printf("Compute the current month...\n"); daycode = getDaycode(year); isLeapYear(year); displayCalendar(year, month, daycode); /* insert code for computing the current month */ } else if( argc == 2 ){ if( strcmp(argv[1], "-m") == 0 ){ printf("cal missing argument for option -m.\n"); } else if( strcmp(argv[1], "-y") == 0 ){ month = 0; year = time_systimeyear; // printf("Compute the current year...\n"); daycode = getDaycode(year); isLeapYear(year); displayCalendar(year, month, daycode); /* insert code for computing the current year */ } else{ printf("cal: Invalid argument '%s'\n", argv[1]); } } else if( argc == 3 ){ if( strcmp(argv[1], "-m") == 0 ){ month = isValidMonth(argv[2]); if( month ){ year = time_systimeyear; daycode = getDaycode(year); isLeapYear(year); displayCalendar(year, month, daycode); // printf("Compute the month of current year...\n"); /* insert code for computing month of current year */ } else{ printf("cal: invalid argument '%s'\n", argv[2]); } } else if( strcmp(argv[1], "-y") == 0 ){ year = atoi(argv[2]); if( year == 0 ) printf("cal: invalid argument '%s'\n", argv[2]); else if( year > 9999 || year < 1) printf("cal: year `%d' not in range 1..9999\n", year); else if( year >= 1 && year <= 9999 ){ month = 0; daycode = getDaycode(year); isLeapYear(year); displayCalendar(year, month, daycode); // printf("Compute the year...\n"); /* insert code for computing the year */ } else{ printf("cal: invalid argument '%s'\n", argv[2]); } } else{ printf("cal: invalid argument '%s'\n", argv[1]); } } else{ printf("cal: invalid number of arguments\n"); } }// end of main