我需要比较两个日期。 当前日期,用户输入格式为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");
下面是我找到的示例代码
答案 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()。