我试图在C中与另一个约会一个日期,并在几天内找到它们之间的差异.然而,这比它最初出现的要复杂得多,因为我显然必须考虑到不同年份的不同日期,因为闰年和不同的天数取决于它是哪个月.我确实试过使用time.h但是我认为它不允许闰年.
例如,目前我的数据作为整数存储在数组中{2010, 5, 1, 2011, 6, 1}.
那么有人可以发布或指向我的算法,以帮助我完成这项任务吗?非常感谢你.
我正在寻找一种方法来找到两个日期之间的差异.解决方案需要考虑闰年.请参阅下面的两个代码块.2012年是闰年,而2013年则没有,因此我无法理解为什么两个项目都会输出"32天的差异".当time.h确实考虑到闰年时,他们肯定会有所不同吗?
首先:
#include <stdio.h>
#include <time.h>
int main ()
{
struct tm start_date;
struct tm end_date;
time_t start_time, end_time;
double days;
start_date.tm_hour = 0; start_date.tm_min = 0; start_date.tm_sec = 0;
start_date.tm_mon = 2; start_date.tm_mday = 1; start_date.tm_year = 112;
end_date.tm_hour = 0; end_date.tm_min = 0; end_date.tm_sec = 0;
end_date.tm_mon = 3; end_date.tm_mday = 1; end_date.tm_year = 112;
start_time = mktime(&start_date);
end_time = mktime(&end_date);
days = difftime(end_time, start_time) / 86400;
printf ("%.f days difference\n", days);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
第二:
#include <stdio.h> …Run Code Online (Sandbox Code Playgroud)