c语言:从键盘上输入一个日期,判断输入的日期是不是正确
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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==0 && y%100 || y%400==0 ? 29 : 28;//闰年调整
if(y>0 && m>0 && m<13 && d>0 && d<=md[m-1])//判断输入是否正确
printf("Your input is correct!\\n");//正确输出
else
printf("Error...\\n");//错误输出
return 0;
运行样例如下:
if (iYear<1600||iYear>=10000)
return -1;
if (iYear%4==0&&iYear%100!=0||iYear%400==0)//判断闰年的条件
return 1;
else
return 0;
int DateCheck(int iYear,int iMonth,int iDay)
if (iYear<1600||iYear>=10000||iMonth>12||iMonth<1||iDay<1||iDay>31)
return 0;
if (iMonth==4||iMonth==6||iMonth==9||iMonth==11)
if (iDay==31)
return 0;
else if (iMonth==2)
if (IsLeapYear(iYear)==0)
if (iDay>28)
return 0;
else
if (iDay>29)
return 0;
return 1;
核心代码就是这些,另外你自己写主函数,调用DateCheck函数就可以了。
C语言试题163之计算某一天是对应年的第几天,这一年一共多少天;计算两个日期之间相隔的天数。两个日期由键盘输入。
以上是关于c语言:从键盘上输入一个日期,判断输入的日期是不是正确的主要内容,如果未能解决你的问题,请参考以下文章
用c语言编写从键盘输入一个数,判断是不是在数组a里(1~10的整数)
c语言:要求从键盘上输入其一身份证号码,判断第18位是不是正确