这道题对新手有点难度,但只要想通了还是值得一做的。
加油吧!!!
#include <stdio.h>
int main()
{
int a,b,c; //a为年份,b为月份,c为日期
while(scanf("%d %d %d",&a,&b,&c)!=EOF){
if((a%4==0&&a%100!=0)||a%400==0){ //判断闰年
if(b>=1&&b<=12){
if(b==2){ //润年2月有29天
if(c>=1&&c<=29){
printf("legal\n");
}
else{
printf("illegal\n");
}
}
else if(b==4||b==6||b==9||b==11){ //闰年的月份
if(c>=1&&c<=30){
printf("legal\n");
}
else{
printf("illegal\n");
}
}
else if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
if(c>=1&&c<=31){
printf("legal\n");
}
else{
printf("illegal\n");
}
}
}
else{
printf("illegal\n");
}
}
else{ //这里开始判断不润年的时候
if(b>=1&&b<=12){
if(b==2){ //2月有28天
if(c>=1&&c<=28){
printf("legal\n");
}
else{
printf("illegal\n");
}
}
else if(b==4||b==6||b==9||b==11){ //这里照抄上面闰年的其他月份
if(c>=1&&c<=30){
printf("legal\n");
}
else{
printf("illegal\n");
}
}
else if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
if(c>=1&&c<=31){
printf("legal\n");
}
else{
printf("illegal\n");
}
}
}
else{
printf("illegal\n");}
}
} //有些程序不需要返回值,如这里无return 0;
}
————————————————
版权声明:本文为CSDN博主「ℳ刘·」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_63068918/article/details/123996103
C语言判断日期合法性
于 2022-04-06 18:06:37 首次发布