#include <stdio.h>
int isLeap(int year)
{
if(year%4==0&&year%100!=0||year%400==0)
return 1;
else
return 0;
}
int main()
{
int year,month,day,days=0;
scanf("%d-%d-%d",&year,&month,&day);
switch(month-1)
{
case 11:days+=30;
case 10:days+=31;
case 9:days+=30;
case 8:days+=31;
case 7:days+=31;
case 6:days+=30;
case 5:days+=31;
case 4:days+=30;
case 3:days+=31;
case 2:days+=28+isLeap(year);
case 1:days+=31;break;
default:
printf("input error\n");
}
days+=day;
printf("%d年%d月%d日是该年的第%d天",year,month,day,days);
return 0;
}
第二种方法
#include <stdio.h>
int isLeap(int year)
{
if(year%4==0&&year%100!=0||year%400==0)
return 1;
else
return 0;
}
int main()
{
int year,month,day;
scanf("%d-%d-%d",&year,&month,&day);
int days=0;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
for(int i=1;i<month;i++)
{
days+=a[i];
}
days+=day;
if(isLeap(year)&&month>2)
days+=isLeap(year);
printf("%d年%d月%d日是该年的第%d天",year,month,day,days);
return 0;
}
运行结果: