题目描述
输入年、月、日,计算该天是本年的第几天。
输入描述:
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
输出描述:
输入可能有多组测试数据,对于每一组测试数据,
输出一个整数,代表Input中的年、月、日对应本年的第几天。
输入
1990 9 20
2000 5 1
输出
263
122
思路及特别提示
tip1:如何判断闰年:能被4整除并且不能被100整除的是闰年,能被400整除的也是闰年 (y%100!=0&&y%4==0)||(y%400 == 0); 得到的结果为非零,则为闰年(一年有366天 2月有29天),得到的结果为0,则为平年(一年有365天 2月只有28天)。
代码
#include<iostream>
using namespace std;
int days[2][13]={{0,31,29,31,30,31,30,31,31,30,31,30,31},
{0,31,28,31,30,31,30,31,31,30,31,30,31}};
int main(){
int y,month,day,sum=0,leap;
while(cin>>y>>month>>day){
sum=day;
if((y%100!=0&&y%4==0)||(y%400 == 0))//判断是不是闰年
leap=0;
else
leap=1;
for(int i=1;i<month;i++)
sum+=days[leap][i];
cout<<sum<<endl;
}
return 0;
}