日期问题

判断日期是否合法的模板(蓝桥杯常用)

bool check(int year, int month, int day)//检查日期是否合法
{
    
    /*日期不合法三种情况:
    ① 月份不在1-12之间 日期不在1-31之间
    ② 月份为2时,判断是否闰年,日期大于leap+28
    ③ 日期大于每月最大日期
    */
    if( month > 12 || month < 1 || day < 1 || day > 31) return false;
    if(month == 2)
    {
        int leap = year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
        if(day > days[month] + leap) return false;
        return true;
    }
    if(day > days[month])   return false;
    return true;
}
posted @ 2022-06-27 21:39  D_coding_blog  阅读(52)  评论(0)    收藏  举报