Пример #1
0
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