c下对比时间的处理方法

超出指定日期返回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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值