代码
#include <iostream>
using namespace std;
bool isLeapYear(int year) {
if(year%4==0 && year%100!=0) {
return true;
} else if(year%400==0) {
return true;
}
return false;
}
int main() {
int month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int year, mon, day;
while(scanf("%d/%d/%d", &year, &mon, &day)!=EOF) {
int count = 0;
if(isLeapYear(year)) {
if(mon==2 && day>=29) {
count++;
} else if(mon>2) {
count++;
}
}
for(int i=1; i<mon; i++) {
count += month[i];
}
count += day;
cout<<count<<endl;
}
return 0;
}
注解
1、如用Java,建议用Calendar类,有DAY_OF_YEAR这个常量。
2、本题用C++,主要注意闰年的判断,以及输入为闰年,是否在2.29日期之后的判断。