代码如下:
#include <stdio.h>
#define MONTH_1 31
#define MONTH_2 28
#define MONTH_3 31
#define MONTH_4 30
#define MONTH_5 31
#define MONTH_6 30
#define MONTH_7 31
#define MONTH_8 31
#define MONTH_9 30
#define MONTH_10 31
#define MONTH_11 30
#define MONTH_12 31
int main(int argc, const char *argv[])
{
int years = 0;
int month = 0;
int days = 0;
int sum = 0;
//闰年:1,平年:0
int leap = 0;
printf("请输入要查询的日期:年/月/日");
scanf("%d%d%d",&years,&month,&days);
if((years%4 == 0 && years%100 != 0 || years%400 == 0)){
leap = 1;
}
if(month<1 || month>12){
printf("月份输入有误\n");
return -1;
}
if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12 ){
if(days<1 || days>31){
printf("日期输入有误\n");
return -1;
}
}
if(month == 4 || month == 6 || month == 9 || month == 11){
if(days<1 || days>30){
printf("输入日期有误\n");
return -1;
}
}
if(month == 2){
if(leap == 0){
if(days<1 || days>28){
printf("输入日期有误\n");
return -1;
}
}else if(leap == 1){
if(days<1 || days>29){
printf("输入日期有误\n");
return -1;
}
}
}
switch(month){
case 12:
sum += MONTH_11;
case 11:
sum += MONTH_10;
case 10:
sum += MONTH_9;
case 9:
sum += MONTH_8;
case 8:
sum += MONTH_7;
case 7:
sum += MONTH_6;
case 6:
sum += MONTH_5;
case 5:
sum += MONTH_4;
case 4:
sum += MONTH_3;
case 3:
sum += MONTH_2 + leap;
case 2:
sum += MONTH_1;
case 1:
sum += days;
break;
}
printf("%d年%d月%d日是%d年的第%d天\n",years,month,days,years,sum);
return 0;
}