【发布时间】:2019-04-28 15:27:08
【问题描述】:
我正在尝试编写一个 c 函数,该函数使用 time.h 计算两个日期之间的天数(格式:yyyy-mm-dd)。
日期是从字符串中读取的。 我不需要考虑秒或分钟。
我知道我可能需要使用 difftime() 但如何以这种格式使用它?
谢谢,
这是我尝试做的,但我遇到了分段错误。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define CURRDATE "2019-10-5"
#define OTHER "2019-10-10"
void auxDate(struct tm *t, char *date)
{
struct tm p;
p.tm_year = atoi(strtok(date, "-")) - 1900;
p.tm_mon = atoi(strtok(date, "-"));
p.tm_mday = atoi(date);
*t = p;
}
int main()
{
struct tm date1, date2;
auxDate(&date1, CURRDATE);
auxDate(&date2, OTHER);
printf("%.0lf\n", difftime(mktime(&date1), mktime(&date2)));
}
【问题讨论】:
-
你是在支持 POSIX
strptime()的平台上吗? -
你能发布你尝试过的东西吗?
-
请发表您尝试过的事情,这里的人不会解决您的问题,他们会帮助您学习如何自己解决问题
-
互联网上有一些开源程序可以做到这一点。也许查看他们的源代码将有助于为您提供一些想法。
-
不,我不相信我的平台支持 strptime()。