程序代码:
#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); }