gpt4 book ai didi

C 天数之间的差异 1 天不工作

转载 作者:太空宇宙 更新时间:2023-11-03 23:21:43 24 4
gpt4 key购买 nike

对于一个正在开发的项目,我需要找到两个日期之间的差异以检查哪个日期更近,我做得很好,但我发现了一个小错误。

对于使用 struct tm 的日期,这是代码:

它适用于每个日期,除非我想比较月末的日期(31/5/2016)和第二天(1/6/2016),它返回我 0 天,它应该返回 1。但如果我将它更改为 2016 年 5 月 30 日,它会返回 1 天而不是 2 天。可能是 31 天而不是 30 天。所以它在某些月份有效,而在其他月份无效。有谁知道吗如何克服这个问题?

提前致谢,抱歉我的英语不好,这不是我的母语

最佳答案

secondDate.tm_mon 中的值 0 而不是 1 将代表一月。

试试这个:

struct tm firstDate, secondDate;
firstDate.tm_hour = 0;
firstDate.tm_min = 0;
firstDate.tm_sec = 0;
firstDate.tm_mon = 5 - 1;
firstDate.tm_mday = 30;
firstDate.tm_year = 2016 - 1900; //difference between current year and 1900

secondDate.tm_hour = 0;
secondDate.tm_min = 0;
secondDate.tm_sec = 0;
secondDate.tm_mon = 6 - 1;
secondDate.tm_mday = 1;
secondDate.tm_year = 2016 - 1900;

time_t fDate = mktime(&firstDate); // 31/5/2016
time_t sDate = mktime(&secondDate); // 1/6/2016
int diff = (difftime(fDate, sDate));

printf("%d", diff / 86400);

关于C 天数之间的差异 1 天不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37661640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com