#include <iostream> using namespace std; int main() { int year, month, day; int i = 0; int sum = 0; while ( cin >> year >> month >> day) { //1.要有一年的中的每一个月的天数,方便计算 int MonthDay[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; //2.把这一年的已过的月份的天数先加上,再加上,这个月的天数,比如2023 11 8, //先把前面10个月的加起来,再加上11月已过的天数。 for (i = 1; i < month; i++) { sum += MonthDay[i]; } sum += day; //3.已过的月份是否>2,判断是否是闰年,如果是加一天 if (month > 2 && (year % 4 == 0 && year % 100 != 0 && year || 400 == 0)) { cout << sum + 1 << endl; } else { cout << sum; } } }
思路:
第1步:用一个数组,存放着12个月的天数,数组要13个空间,下标为0的位置用零空出来,因为没有0月,
第2步:先把前面个月的加起来,再加上这个月已过的天数。
第3步:判断月数是不是超过二月,如果超过就要判断年份是不是属于润年。如果是就要天数+1