Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
#include <iostream>
using namespace std;
struct date {
long long year;
int month;
int day;
};
int countdays(date day1) {
int i = day1.day;
int sum = 0;
switch (day1.month) {
case 12:
sum += 30;
case 11:
sum += 31;
case 10:
sum += 30;
case 9:
sum += 31;
case 8:
sum += 31;
case 7:
sum += 30;
case 6:
sum += 31;
case 5:
sum += 30;
case 4:
sum += 31;
case 3:
sum += 28;
case 2:
sum += 31;
case 1:
sum += i;
break;
}
if (day1.year % 400 == 0 || (day1.year % 100 != 0 && day1.year % 4 == 0)) {
if (day1.month > 2)//如果月份不超过二月份的话,不需要加1的,例如1999.1.2和2000.1.2
//都是第二天,并没有因为闰年而增加
return ++sum;
}
return sum;
}
int main()
{
date a;
char blash;//用char 型判断“/”很骚。。。
while (cin >> a.year >> blash >> a.month >> blash >> a.day)
{
cout << countdays(a) << endl;
}
return 0;
}