C语言验证日期格式是否正确#includestdio.h
typedef struct {int y,m,d;}Date;
int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int checkDate(Date date)
{mon[2]=28 (date.y%4==0date.y0||date.y@0==0);
return date.y0date.m0date.d0date.m13date.d=mon[date.m];
}
int main()
{ Date date;
scanf("%d%*c%d%*c%d",date.y,date.m,date.d);
printf("%s",(checkDate(date)?"OK":"Error"));
return 0;
}
c语言中 求解如何判断输入的年月日是否合理代码里面的主要问题时:
if((month==1,3,5,7,8,10,12)这样的判断语句是有问题 , 应该使用||运算符的;
if和else语句没有配合好,主要是你的代码嵌套比较多,一定要注意代码缩进,否则自己可能都没有发现那个地方else没有写的 。。
下面的代码 , 是修改后,运行结果附在后面:
#includestdio.h
#includestdlib.h
int main()
{
int year,month,day,sum;
printf("输入年月日(例如:2013.4.5):");
scanf("%d,%d,%d",year,month,day);
if(year0month=12)
{
if(((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))(day0||day31))
{
printf("该月不存在输入的天数,请重新输入1\n");
}
else if(((month==4)||(month==6)||(month==9||11))(day0||day30))
{
printf("该月不存在输入的天数,请重新输入2\n");
}
else if(month==2)
{
if(((year%4==0year0!=0)||year@0==0)(day0||day29))
{
printf("二月不存在输入的天数 , 请重新输入3\n");
}
else
{
if(((year%4!=0year0!=0)||year@0!=0)(day0||day28))
{
printf("二月不存在输入的天数,请重新输入4\n");
}
}
}
else
{
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
}
sum =day;
if(((year%4==0year0!=0)||year@0==0)(month2))
{
sum;
printf("这是%d年的第%d天\n",year,sum);
}
else
{
printf("这是%d年的第%d天\n",year,sum);
}
}
}
system("pause");
return 0;
}
运行结果为:
c语言判断日期合法性手边没有IDE , 查错有点费事,写了一个
#include stdio.h
void yes();
void no();
int main(void)
{
int year,month,day;
printf("Please Input Data Like 1992-04-03:\n");
scanf("%d-%d-%d",year,month,day);
if(year0 || year3000 || day31 || day0 || month12 || month0 )
{
printf("Please Input Right Number!\n");
return -1;
}
if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
if(day0day = 31)
{
yes();
}
else
{
no();
}
}
else if(month == 2)
{
if((year % 4 == 0year % 100 != 0) || year % 400 == 0year % 100 == 0)
{
yes();
}
else
{
no();
}
}
else
{
if(day0day31)
{
yes();
}
else
{
【c语言判断日期合理性函数 c语言判断年月日编程】no();
}
}
return 0;
}
void yes()
{
printf("YES\n");
}
void no()
{
printf("NO\n");
}
c语言:从键盘上输入一个日期,判断输入的日期是否正确定义一个12元素的int型数组存放1月份至12月份每个月的天数;
根据输入的年份判断是否为闰年,对上述数组中2月份的天数进行调整;
判断年份大于0、月份大于0小于13、日期大于0小于等于月份对应的天数为正确输入 , 否则为错误输入 。
代码如下:
#include "stdio.h"
int main(int argc,char *argv[]){
int y,m,d,md[12]={31,28,31,30,31,30,31,31,30,31,30,31};//md是每月天数数组
printf("Please enter the year, month, day(separated by ' ')...\n");
scanf("%d%d%d",y,m,d);
md[1] = y%4==0y0 || y@0==0 ? 29 : 28;//闰年调整
if(y0m0m13d0d=md[m-1])//判断输入是否正确
printf("Your input is correct!\n");//正确输出
else
printf("Error...\n");//错误输出
return 0;
}
运行样例如下:
关于c语言判断日期合理性函数和c语言判断年月日编程的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 抖音伴侣电脑直播会中断,电脑抖音直播伴侣黑屏要怎么解决
- 5nm鸿蒙系统,5g鸿蒙
- php数据库新建数据库,php怎么建立数据库mysql
- 模拟经营加打怪的游戏,模拟经营游戏单机
- c语言将数组传给函数 c语言 传数组
- 中国GIS的持续发展,中国gis的持续发展历程
- gis林业数据处理,arcgis林业局教程
- i5四代和什么cpu持平,i5四代处理器配什么显卡
- 短信验证平台go语言 短信验证码平台api