题目
请你计算出 xx 年 yy 月 zz 日是 xx 年的第几天。
请注意闰年对答案的影响。
输入格式
一行三个整数,xx,yy 和 zz。(1583\le x\le 21001583≤x≤2100)。数据保证输入合法。
输出格式
一个整数,表示是第几天
输入输出
输入 | 输出 |
2016 3 1 | 61 |
1900 3 1 | 60 |
思路
利用非常简单的判断和定义来粗暴的计算具体的天数。
代码
#include<stdio.h>
#include<math.h>
int main ()
{
int year,month,day;
int a;
scanf("%d %d %d",&year,&month,&day);
if(year<1583||year>2100)
return 0;
if(year%4==0&&year%100!=0||year&400==0)
{
if(month==1)
a=0+day;
else if(month==2)
a=31+day;
else if(month==3)
a=60+day;
else if(month==4)
a=91+day;
else if(month==5)
a=121+day;
else if(month==6)
a=152+day;
else if(month==7)
a=182+day;
else if(month==8)
a=213+day;
else if(month==9)
a=244+day;
else if(month==10)
a=274+day;
else if(month==11)
a=305+day;
else if(month==12)
a=335+day;
}
else
{
if(month==1)
a=0+day;
else if(month==2)
a=31+day;
else if(month==3)
a=59+day;
else if(month==4)
a=90+day;
else if(month==5)
a=120+day;
else if(month==6)
a=151+day;
else if(month==7)
a=181+day;
else if(month==8)
a=212+day;
else if(month==9)
a=243+day;
else if(month==10)
a=273+day;
else if(month==11)
a=304+day;
else if(month==12)
a=334+day;
}
printf("%d",a);
return 0;
}