¡¡¡¡ÎÒµÄ˼·ÊÇ£ºÏȶÔÄêÔÂÈÕ½øÐмòµ¥µÄ·¶Î§¼ì²é£¬Ö®ºó½«ÆäÐγÉÒ»¸ötm½á¹¹£¬ÔÙµ÷ÓÃmktime½«¸Ãtmת»»ÎªÒ»¸ötime_t£¬Ôڴ˹ý³ÌÖÐmktime½«¶Ô²»ºÏ·¨µÄÈÕÆÚ×Ô¶¯½øÐй淶»¯£¬ÈçÊäÈëΪ2007-6-31½«±»×ª»¯Îª2007-7-1¡£Òò´Ë±È½Ïת»»Ç°ºóµÄÄêÔÂÈÕÊÇ·ñÏàͬ¾ÍÄÜÖªµÀÈÕÆÚÊÇ·ñºÏ·¨¡£ÎªÁ˱ãÓڱȽϣ¬ÔÙµ÷ÓÃlocaltime½«time_tת»¯Îªtm½øÐбȽϡ£¸ù¾Ý±È½Ï½á¹ûÀ´ÑéÖ¤ÈÕÆÚÊÇ·ñºÏ·¨¡£
ÒýÓÃ:¡¡¡¡bool check_date(int year, int month, int day)
¡¡¡¡{
¡¡¡¡¡¡¡¡if (year < 1900 || month <= 0 || month > 12 || day <= 0 || day > 31)
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡return false;
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡//form time
¡¡¡¡¡¡¡¡struct tm tm_new;
¡¡¡¡¡¡¡¡tm_new.tm_year = year - 1900;
¡¡¡¡¡¡¡¡tm_new.tm_mon = month - 1;
¡¡¡¡¡¡¡¡tm_new.tm_mday = day;
¡¡¡¡¡¡¡¡tm_new.tm_hour = 0;
¡¡¡¡¡¡¡¡tm_new.tm_min = 0;
¡¡¡¡¡¡¡¡tm_new.tm_sec = 0;
¡¡¡¡¡¡¡¡time_t time_new = mktime(&tm_new);
¡¡¡¡¡¡¡¡localtime_r(&time_new, &tm_new);
¡¡¡¡¡¡¡¡if (tm_new.tm_year != year - 1900 || tm_new.tm_mon != month - 1 || tm_new.tm_mday != day)
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡return false;
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡else
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡return true;
¡¡¡¡¡¡¡¡}
¡¡¡¡}

