int VALIDATION_isDate(char *source)
{
//puts("日期为2011--2999年 格式为YYYY.MM.DD,YYYY-MM-DD,YYYY/MM/DD");
int Idatelen=strlen(source);
char cyear[4];
char cmonth[2];
char cdata[2];
int iyear;
int imonth;
int idata;
if (VALIDATION_isEmpty(source)==SUCCESS) //首先判读是否输入存在空格
{
printf(" 输入不能为空\n");
return FAILURE;
}
if (Idatelen!=10) //判读是否按要求的长度
{
printf(" 长度不为10\n");
return FAILURE;
}
if (strchr("-./",*(source+4))==NULL || strchr("-./",*(source+7))==NULL) //判读第五位,第八位是否是.-/三种格式
{
return FAILURE;
}
if (*(source+4)!=*(source+7))
{
return FAILURE;
}
//char *strncpy(char *dest, const char *src,int count)
strncpy(cyear,source,4);
cyear[4]='\0';
strncpy(cmonth,source+5,2);
cmonth[2]='\0';
strncpy(cdata,source+8,2);
cdata[2]='\0';
if (VALIDATION_isNumeric(cyear) && VALIDATION_isNumeric(cmonth) && VALIDATION_isNumeric(cdata) )
{
iyear=atoi(cyear);
imonth=atoi(cmonth);
idata=atoi(cdata);
// int arr1[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; /* 平年调用这个数组 */
//int arr2[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; /* 闰年调用这个数组 */
if ((iyear>=2000 && iyear<3000) && (imonth>=1 && imonth<=12 ) && (idata>=1 && idata <=31)) //判断日期是否在合法的范围内
{
switch (imonth)
{
case 4:
case 6:
case 9:
case 11:
if (idata>30) //如果是4.6.9.11 判断天数是否大于30
{
puts("4,6,9月份天数不能大于30天,请重新输入");
return FAILURE;
}
break;
case 2:
if ((iyear % 4== 0 && iyear%100 != 0) || (iyear % 400 == 0)) //用于判断是否为闰年
{
if (idata>29) //如果是,2月将不能大于29天
{
puts("闰年二月份天数不能大于29,请重新输入");
return FAILURE;
}
}
else
{
if (idata >28) //如果不是,2月将不能大于28天
{
puts("二月份天数不能大于28,请重新输入");
return FAILURE;
}
}
break;
default:
break;
} /*end of switch*/
}
else
{
puts("年或月或日,不在合法范围内");
return FAILURE;
}
return SUCCESS;
}/*end of if(VALIDATION_isNumeric)*/
puts("日期不为数字");
return FAILURE;
}
C语言简单的日期校验函数
原创
©著作权归作者所有:来自51CTO博客作者meakhella的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:文件 与 链表的同步
下一篇:linux 常识
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【C语言加油站】qsort函数的模拟实现
【C语言加油站】qsort函数的模拟实现本文详细介绍了使用冒泡排序的逻辑模拟实现可以排序任意类型数组的qsort函数……
C语言 qsort排序函数 冒泡排序 回调函数 void*指针 -
简单的C语言printf函数输出
使用printf函数输出二次元美少女头像
C语言 其他 经验分享 -
C语言函数指针简单应用
本案例运用函数指针去调用不同函数,代码简单易懂,让你快速撑握C语言函数指针的使用方法,具体代码如下:#include //对数组
c语言 函数指针 指针 i++ 调用函数 -
C语言函数指针数组简单案例
本案例运用函数指针数组分别去调用函数,案例中定义一个长度为3的函数指针数组,分别指向3个函数,然后运用一个for循环分
c语言 指针 函数指针 函数指针数组 调用函数 -
C语言的简单概括
c语言
数据类型 应用程序 控制结构 -
C语言的函数
C语言提供了大量的库函数: 比如stdio.h提供输出函数[]包含的内容可以省略,
c语言 无参函数 函数调用 有参函数