C ++ - сравнить дату с текущей системной датой - PullRequest
0 голосов
/ 03 февраля 2011

У меня есть дата в формате тм. как я могу сравнить с текущей системной датой. Я просто хочу сравнить tm_year, tm_mon, tm_mday.

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

В основном у меня есть набор данных, который относится к другой дате. Поэтому я хочу отфильтровать данные на текущую дату.

Спасибо
Сида

1 Ответ

0 голосов
/ 03 февраля 2011

Чтобы узнать текущее время, используйте функцию 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 возвращает указатель на внутренний буфер, поэтому, если вы вызовете его снова для ввода даты, вы перезапишете предыдущую временную структуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...