
程序代码:
#include<stdio.h>
int judge_year(int year);
int judge_month(int month);
void judge_day(int year,int month);
int main()
{
int year,month;
printf("请输入年月(XXXX.x):");
scanf("%d.%d",&year,&month);
judge_day(year,month);
return 0;
}
int judge_year(int year)
{
/*公历纪年法中:能被4整除的大多是闰年;能被100整除而不能被400整除的年份不是闰年;
能被3200整除的也不是闰年;如1900年是平年,2000年是闰年,3200年不是闰年。*/
int ret=0;//0为平年,1为闰年
if(year%4==0){
ret=1;
if(year%100==0&&year%400!=0||year%3200==0){
ret=0;
}
}
return ret;
}
int judge_month(int month)
{
int ret=1;//1表示大月,0表示除2月的小月,-2表示2月
if(month==2){
ret=-2;
}else if(month==4||month==6||month==9||month==11){
ret=0;
}
return ret;
}
void judge_day(int year,int month)
{
int result=judge_month(month);
if(judge_year(year)&&judge_month(month)==-2){
result=-1;
}
printf("%d\n",result);
printf("当月有%d天\n",result+30);
}