c++计算两个日期之间的天数
时间: 2023-09-04 13:11:52 浏览: 484
可以使用以下的代码来计算两个日期之间的天数(假设日期以整数形式给出,如20210727代表2021年7月27日):
```c++
#include <iostream>
using namespace std;
int daysBetween(int year1, int month1, int day1, int year2, int month2, int day2) {
int days = 0;
int monthDays[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
for (int i = year1; i < year2; i++) {
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {
days += 366;
} else {
days += 365;
}
}
if ((year2 % 4 == 0 && year2 % 100 != 0) || year2 % 400 == 0) {
monthDays[2] = 29;
}
for (int i = 1; i < month1; i++) {
days -= monthDays[i];
}
days -= day1;
for (int i = 1; i < month2; i++) {
days += monthDays[i];
}
days += day2;
return days;
}
int main() {
int year1, month1, day1;
int year2, month2, day2;
cin >> year1 >> month1 >> day1;
cin >> year2 >> month2 >> day2;
cout << daysBetween(year1, month1, day1, year2, month2, day2) << endl;
return 0;
}
```
在上述代码中,我们定义了一个`daysBetween`函数,该函数接受6个参数:起始日期的年、月、日和结束日期的年、月、日。函数返回起始日期与结束日期之间的天数。
函数的实现中,我们首先计算起始日期与结束日期之间的整年天数。对于每一年,我们判断其是否为闰年,并根据是否为闰年来累加该年的天数。然后,我们再计算出起始日期与年底之间的天数以及结束日期与年初之间的天数,并将它们相加作为结果返回。需要注意的是,我们需要先判断结束日期所在的年份是否为闰年,如果是,将2月份的天数设置为29天。
最后,在`main`函数中,我们读入起始日期和结束日期,并调用`daysBetween`函数计算它们之间的天数,并将结果输出。
阅读全文