#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; }逐行翻译
时间: 2024-03-07 07:46:59 浏览: 107
这段代码实现了计算两个日期之间的天数差。
```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};
// monthDays数组存储每个月份的天数
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; // 如果第二个日期所在的年份是闰年,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;
}
```
代码翻译:
第1-2行:引入iostream库,使用std命名空间
第4-11行:定义了一个函数daysBetween,接受六个int类型参数,分别为两个日期的年、月、日
第12-13行:初始化变量days和monthDays数组,monthDays数组存储每个月份的天数,其中第一个元素为0,后面的元素分别为1月到12月的天数
第14-22行:计算两个日期之间的年数差,对于每一年,如果是闰年,则天数加上366,否则加上365
第23-25行:如果第二个日期所在的年份是闰年,将2月份的天数调整为29天
第26-29行:减去第一个日期所在月份之前的天数和第一个日期所在月份的天数
第30-33行:加上第二个日期所在月份之前的天数和第二个日期所在月份的天数
第34行:返回计算出的天数差
第36-37行:主函数,读入两个日期,计算天数差并输出结果
阅读全文