模板
for (int year = 2000; year <= 2024; year++) {
for (int month = 1; month <= 12; month++) {
for (int day = 1; day <= 31; day++) {
// 判断每个月的天数
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
if (day > 31) break; // 31天的月份
} else if (month == 2) {
// 闰年判断
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
if (day > 29) break; // 闰年2月29天
} else {
if (day > 28) break; // 平年2月28天
}
} else {
if (day > 30) break; // 30天的月份
}
例题
计算从2000年1月1日
到2000年5月4日
经过的天数
#include <bits/stdc++.h>
using namespace std;
int main() {
int cnt = 0; // 初始化为0,表示经过的天数
// 从2000年1月1日开始统计
for (int year = 2000; year <= 2024; year++) {
for (int month = 1; month <= 12; month++) {
for (int day = 1; day <= 31; day++) {
// 判断每个月的天数
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
if (day > 31) break; // 31天的月份
} else if (month == 2) {
// 闰年判断
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
if (day > 29) break; // 闰年2月29天
} else {
if (day > 28) break; // 平年2月28天
}
} else {
if (day > 30) break; // 30天的月份
}
// 统计经过的天数,起始日期为2000年1月1日
cnt++;
// 如果达到目标日期,输出结果
if (year == 2000 && month == 5 && day == 4) {
cout << cnt << endl;
return 0;
}
}
}
}
}
Comments NOTHING