如题,输入一个日期,格式如:2010 10 24 ,判断这一天是这一年中的第几天。
分析:
官方给的最优答案用了for 和switch语句结合,十分巧妙。
代码
/*
如题,输入一个日期,格式如:2010 10 24
判断这一天是这一年中的第几天。
*/
#include<iostream>
using namespace std;
bool leapyear(int a) //判断闰年
{
// if((a%4==0) && (a%100 || a%400==0) ) return true; //可以被4整除但是不能被100 或者可以被400整除的为闰年
if( (a%4==0 && a%100 )|| a%400 == 0 ) return true;
else
return false;
}
int main()
{
int a[3]={0};
int n;
cin>>n;
int day[12]={31,0,31,30,31,30,31,31,30,31,30,31}; //默认闰年
while(n--)
{
int dayNum = 0;
for(int i=0;i<3;i++)
{
cin>>a[i];
}
if(leapyear(a[0]))
day[1]=29; //判断闰年来改变2月的天数
else
day[1]=28;
for(int i=0; i+1 <a[1];i++)
{
dayNum += day[i];
}
cout<<dayNum+a[2]<<endl;
}
}