您的位置:首页 > 编程语言 > C语言/C++

C语言实现输入一个日期,返回第二天的日期

2018-04-01 22:54 253 查看
来源:大工慕课 链接

作者:Caleb Sung

解答示范

其实也可以用函数部分的知识解决,而且也不推荐大家使用goto命令;

本文主要面向C语言初学者,故使用函数之前的知识加以解决:

#include<stdio.h>
int main()
{
int y, m, d;
L:
printf("请输入一个日期,年月日均为整数,并用空格键隔开。其中,年份为负表示公元前纪年。\n");
scanf("%d %d %d",&y,&m,&d);
switch(m)
{
case 1:
{
if (d==31)
{m++; d=1;}
else if (d>=1&&d<=30)
d++;
else
{printf("错误的日期,请检查后再次输入!\n");
goto L;}
break;
}
case 2:
{
if (d==29)
{
if (y%4==0&&y%100!=0||y%400==0)
{m++; d=1;}
else
{printf("错误的日期,请检查后再次输入!\n");
goto L;}
}
else if (d>=1&&d<=28)
d++;
else
{printf("错误的日期,请检查后再次输入!\n");
goto L;}
break;
}
case 3:
{
if (d==31)
{m++; d=1;}
else if (d>=1&&d<=30)
d++;
else
{printf("错误的日期,请检查后再次输入!\n");
goto L;}
break;
}
case 4:
{
if (d==30)
{m++; d=1;}
else if (d>=1&&d<=29)
d++;
else
{printf("错误的日期,请检查后再次输入!\n");
goto L;}
break;
}
case 5:
{
if (d==31)
{m++; d=1;}
else if (d>=1&&d<=30)
d++;
else
{printf("错误的日期,请检查后再次输入!\n");
goto L;}
break;
}
case 6:
{
if (d==30)
{m++; d=1;}
else if (d>=1&&d<=29)
d++;
else
{printf("错误的日期,请检查后再次输入!\n");
goto L;}
break;
}
case 7:
{
if (d==31)
{m++; d=1;}
else if (d>=1&&d<=30)
d++;
else
{printf("错误的日期,请检查后再次输入!\n");
goto L;}
break;
}
case 8:
{
if (d==31)
{m++; d=1;}
else if (d>=1&&d<=30)
d++;
else
{printf("错误的日期,请检查后再次输入!\n");
goto L;}
break;
}
case 9:
{
if (d==30)
{m++; d=1;}
else if (d>=1&&d<=29)
d++;
else
{printf("错误的日期,请检查后再次输入!\n");
goto L;}
brea
b33f
k;
}
case 10:
{
if (d==31)
{m++; d=1;}
else if (d>=1&&d<=30)
d++;
else
{printf("错误的日期,请检查后再次输入!\n");
goto L;}
break;
}
case 11:
{
if (d==30)
{m++; d=1;}
else if (d>=1&&d<=29)
d++;
else
{printf("错误的日期,请检查后再次输入!\n");
goto L;}
break;
}
case 12:
{
if (d==31)
{y++; m=1; d=1;}
else if (d>=1&&d<=30)
d++;
else
{printf("错误的日期,请检查后再次输入!\n");
goto L;}
break;
}
default:
{printf("错误的日期,请检查后再次输入!\n");
goto L;}
}
if (y<=-1)
{printf("第二天为公元前%d年%d月%d日。\n",-y,m,d);}
else if (y==0)
{printf("第二天为公元元年%d月%d日。\n",m,d);}
else
{printf("第二天为公元%d年%d月%d日。\n",y,m,d);}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐