输入年月日实现计算这是一年的第几天
#include<>
/*通过输入年月日,计算这一天是这一年的第几天,
* 支持任意输入,不正确输入均有提示*/
int main()
{
int year,month,day,Hday,monthD; //Hday--定义总共经过了几天,monthD--month-1的天数累加和
printf("please input year,month and day:");
scanf("%d%d%d",&year,&month,&day);
monthD =0;
if(month ==1 && day<1||day>31)
{
printf("There was no such day this year\n");
}
else
{
switch(month-1)
{
default: printf("you input err!\n");break;
case 11:
{
if(month==12&&day>31||day<1)
{
printf("There was no such day this year\n");
break;
}
else
{
monthD = monthD+30;
}
};
case 10:
{
if(month==11&&day>30||day<1)
{
printf("There was no such day this year\n");
break;
}
else
{
monthD = monthD+31;
}
};
case 9:
{
if(month==10&&day>31||day<1)
{
printf("There was no such day this year\n");
break;
}
else
{
monthD = monthD+30;
}
};
case 8:
{
if(month==9&&day>30||day<1)
{
printf("There was no such day this year\n");
break;
}
else
{
monthD = monthD+31;
}
};
case 7:
{
if(month==8&&day>31||day<1)
{
printf("There was no such day this year\n");
break;
}
else
{
monthD = monthD+31;
}
};
case 6:
{
if(month==7&&day>31||day<1)
{
printf("There was no such day this year\n");
break;
}
else
{
monthD = monthD+30;
}
};
case 5:
{
if(month==6&&day>30||day<1)
{
printf("There was no such day this year\n");
break;
}
else
{
monthD = monthD+31;
}
};
case 4:
{
if(month==5&&day>31||day<1)
{
printf("There was no such day this year\n");
break;
}
else
{
monthD = monthD+30;
}
};
case 3:
{
if(month==4&&day>30||day<1)
{
printf("There was no such day this year\n");
break;
}
else
{
monthD = monthD+31;
}
};
case 2:
{
if(month==3&&day>31||day<1)
{
printf("There was no such day this year\n");
break;
}
else
{
if(year%4==0 && year%100!=0|| year%400==0)
{
monthD = monthD+29;
}
else
{
monthD = monthD+28;
}
}
};
case 1:
{
if(year%4==0 && year%100!=0|| year%400==0)
{
if(month==2&&day>29||day<1)
{
printf("There was no such day this year\n");
break;
}
else
{
monthD = monthD+31;
}
}
else
{
if(month==2&&day>28||day<1)
{
printf("There was no such day this year\n");
break;
}
else
{
monthD = monthD+31;
}
}
};
case 0:
{
if(month==1&&day>31||day<1)
{
printf("There was no such day this yeari");
break;
}
Hday =monthD + day;
printf("%d年%d月%d日是这一年的第%d天\n",year,month,day,Hday);
}
}
}
return 0;
}