输入一个年份、月份、天数,判断这一天是这一年的第几天
#include<stdio.h>
void main(){
int yy,mm,dd;
printf("请输入一个年份月份天数:");
scanf("%d",&yy);
scanf("%d",&mm);
scanf("%d",&dd);
switch(mm){
case 1:
case 2:
printf("%d年%d月%d日是这一年的第%d天\n",yy,mm,dd,(mm-1)*31+dd);
break;
default:
if(yy/400==0 || yy/4==0 && yy/100 != 0){//是闰年
if(mm <= 7){//3-7月份
if(mm % 2 ==0){//为偶
printf("%d年%d月%d日是这一年的第%d天\n",yy,mm,dd,(mm-2)/2*31+((mm-2)/2-1)*30+dd+60);
return;
}else{
printf("%d年%d月%d日是这一年的第%d天\n",yy,mm,dd,(mm-2)/2*30+((mm-2-1)/2)*31+dd+60);
return;
}
}else{//7-12月份
if(mm % 2 ==0){//为偶
printf("%d年%d月%d日是这一年的第%d天\n",yy,mm,dd,(mm-7)/2*30+((mm-7)/2+1)*31+dd+213);
return;
}else{
printf("%d年%d月%d日是这一年的第%d天\n",yy,mm,dd,(mm-7)/2*30+((mm-7)/2)*31+dd+213);
return;
}
}
}else{//非闰年
if(mm <= 7){//3-7月份
if(mm % 2 ==0){//为偶
printf("%d年%d月%d日是这一年的第%d天\n",yy,mm,dd,(mm-2)/2*31+((mm-2)/2-1)*30+dd+59);
return;
}else{
printf("%d年%d月%d日是这一年的第%d天\n",yy,mm,dd,(mm-2)/2*30+((mm-2-1)/2)*31+dd+59);
return;
}
}else{//7-12月份
if(mm % 2 ==0){//为偶
printf("%d年%d月%d日是这一年的第%d天\n",yy,mm,dd,(mm-7)/2*30+((mm-7)/2+1)*31+dd+212);
return;
}else{
printf("%d年%d月%d日是这一年的第%d天\n",yy,mm,dd,(mm-7)/2*30+((mm-7)/2)*31+dd+212);
return;
}
}
}
break;
}
}
如有错误,欢迎大佬们指出!!