如何比较C ++中的两个日期

时间:2015-04-23 15:54:23

标签: c++ function date

我需要比较两个日期。 当前日期,用户输入格式为dd / mm / yyyy的日期。

因此,如果expiry_date> CURRENT_DATE

显示.... 我尝试过difftime(),但由于它使用时间参数

,因此效果不佳
time_t now;
  struct tm newyear;
  double seconds;

  time(&now);  /* get current time; same as: now = time(NULL)  */

  newyear = *localtime(&now);

  newyear.tm_hour = 0; newyear.tm_min = 0; newyear.tm_sec = 0;
  newyear.tm_mon = 0;  newyear.tm_mday = 1;

  seconds = difftime(now,mktime(&newyear));

  printf ("%.f seconds diff", seconds);
  system("pause");

下面是我找到的示例代码

2 个答案:

答案 0 :(得分:0)

如果这是一种固定格式,您可以使用简单的C字符串比较

int date_cmp(const char *d1, const char *d2)
{
    int rc;
    // compare years
    rc = strncmp(d1 + 6, d2 + 6, 4);
    if (rc != 0)
        return rc;

    // compare months
    rc = strncmp(d1 + 3, d2 + 3, 2);
    if (rc != 0)
        return rc;

    // compare days
    return strncmp(d1, d2, 2);
}

答案 1 :(得分:0)

尝试使用strftime将字符串解析为tm *,然后使用mktime()和difftime()。