题目:给出年月日的日期,算出该天是这年的第几天
需要考虑闰年的情况,也需要考虑大月、小月、以及二月;
题目不难,只需考虑周全即可
代码如下:
@author xionglei
@date 2018/03/04
#include<iostream>
using namespace std;
int solution(int year,int month,int day)
{
int leap=0;
int big=0;
int result=0;
if((year%4==0&&year%100!=0) || year%400==0) //算出闰年
leap=1;
if(month<=8)
for(int i=1;i<month;i+=2) ++big; //算出大月
else{
big=4;
for(int i=8;i<month;i+=2) ++big;
}
if(month<=2)
result=30*(month-1)+big+day;
else
result=30*(month-1)+big+day-2+leap;
return result;
}
int main()
{
int year,month,day;
while(cin>>year>>month>>day)
{
int result=solution(year,month,day);
cout<<result;
}
return 0;
}