c++如何计算两个具体日期之间的天数
时间: 2023-10-14 20:08:38 浏览: 234
在 C 语言中,可以使用 time.h 头文件中的 time_t 和 struct tm 数据类型来计算两个具体日期之间的天数。以下是一个示例代码:
```c
#include <stdio.h>
#include <time.h>
int main() {
// 第一个日期
struct tm date1 = {0};
date1.tm_year = 2021 - 1900; // 年份需要减去 1900
date1.tm_mon = 5 - 1; // 月份从 0 开始计数,需要减去 1
date1.tm_mday = 1;
// 第二个日期
struct tm date2 = {0};
date2.tm_year = 2021 - 1900;
date2.tm_mon = 5 - 1;
date2.tm_mday = 10;
// 转换为 time_t 类型
time_t time1 = mktime(&date1);
time_t time2 = mktime(&date2);
// 计算相差的秒数
double diff_sec = difftime(time2, time1);
// 转换为天数
int diff_days = (int)(diff_sec / 86400); // 一天有 86400 秒
printf("两个日期相差 %d 天\n", diff_days);
return 0;
}
```
输出结果为:
```
两个日期相差 9 天
```
在上面的示例代码中,我们首先使用 struct tm 结构体定义了两个日期,然后使用 mktime 函数将它们转换为 time_t 类型,接着使用 difftime 函数计算它们之间相差的秒数,最后将秒数转换为天数即可。
阅读全文