我有一个tm格式的日期。我该如何与当前系统日期进行比较。我只想比较tm_year,tm_mon,tm_mday。
int second = atoi(dateinSecond.c_str());
tm * ptm;
ptm = gmtime ( second );
基本上我有一组属于不同日期的数据。所以我想过滤当前日期的数据。
谢谢,
SYD
答案 0 :(得分:0)
要获取当前时间,请使用time
功能:
time_t timeNow = time(NULL);
tm now;
tm* nowTemp = gmtime(&timeNow);
memcpy(&now, nowTemp, sizeof(now));
int second = atoi(dateinSecond.c_str());
tm * ptm;
ptm = gmtime ( second );
if (now.tm_year == ptm->tm_year &&
now.tm_mon == ptm->tm_mon &&
now.tm_mday == ptm->tm_mday)
{
// Equal
}
您必须复制tm
结构的原因是gmtime
返回指向内部缓冲区的指针,因此如果您再次为输入日期调用它,则将覆盖之前的时间结构。