超出指定日期返回true, 输入字符串格式"2015/03/09"
bool ZSTime::isOutOfDate(constchar* targetDate){
stringstream ss(targetDate);
string month, day, year;
getline(ss, year,'/');
getline(ss, month,'/');
getline(ss, day,'/');
tm t;
memset(&t,0, sizeof(structtm));
char yearArr[year.length()], monthArr[month.length()], dayArr[day.length()];
strcpy(yearArr,year.c_str());
strcpy(monthArr,month.c_str());
strcpy(dayArr,day.c_str());
int yearInt,monthInt,dayInt;
sscanf ( yearArr,"%d", &yearInt );
sscanf ( monthArr,"%d", &monthInt );
sscanf ( dayArr,"%d", &dayInt );
t.tm_mday = dayInt;
t.tm_mon = monthInt -1;
t.tm_year = yearInt -1900;
time_t tNowTime = time(NULL);
tm tNow = *localtime(&tNowTime);
int diff =difftime(mktime(&t),mktime(&tNow));
// cout<<"diff: "<<diff<<"\n";
// cout<<"str :"<<year<<"/"<<month<<"/"<<day<<"\n";
// cout<<"int :"<<yearInt<<"/"<<monthInt<<"/"<<dayInt<<"\n";
return diff<0;
}
参考:
http://www.cplusplus.com/articles/D9j2Nwbp/
http://stackoverflow.com/questions/24913050/c-date-difference