C ++ - 将日期与当前系统日期进行比较

时间:2011-02-03 06:06:15

标签: c

我有一个tm格式的日期。我该如何与当前系统日期进行比较。我只想比较tm_year,tm_mon,tm_mday。

int second = atoi(dateinSecond.c_str());
tm * ptm;
ptm = gmtime ( second );

基本上我有一组属于不同日期的数据。所以我想过滤当前日期的数据。

谢谢,
SYD

1 个答案:

答案 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返回指向内部缓冲区的指针,因此如果您再次为输入日期调用它,则将覆盖之前的时间结构。