把字符转换成日期?
定义的日期输入类型为:2002-08-10的形式,如何判断日期的有效性?
举例:如果输入了别的非法字符(如:s0f0-02-ds),如何保证输入的日期是正确的?怎么判断?
SCO UNIX 5.05环境
/***********************************************************************/
/*函数名称:IsRunNian */
/*功能介绍:判断是否为润年 */
/*调用格式:int IsRunNian( i_year ) */
/*参数说明:i_year 输入年份(yyyy) */
/*返回说明: 1 -- 是润年 */
/* -1 -- 不是润年 */
/***********************************************************************/
int IsRunNian(int i_year)
{
if( ((i_year%4==0)&&(i_year%100!=0)) || (i_year%400==0) ) return 1;
return -1;
}
/***********************************************************************/
/*函数名称:CheckDate */
/*功能介绍:检查输入日期的合法性 */
/*调用格式:int CheckDate(s_date) */
/*参数说明: s_date 输入日期(格式yyyymmdd) */
/*返回说明:0 -- 合法 */
/* 其它 -- 不合法 */
/***********************************************************************/
int CheckDate(char *ylq)
{
int i,y,m,d;
int mouth_date[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int rc;
char s_date[10];
char ylq5[5];
if(strlen(ylq)!=10 ) return 1;
strncpy(s_date,ylq,4);strncpy(ylq5,ylq+5,2);strcat(s_date,ylq5);
strncpy(ylq5,ylq+8,2);strcat(s_date,ylq5);
for(i=0;i<8;i++) if ( !isdigit(s_date[i]) ) return 2;
i=sscanf(s_date,"%4d%2d%2d", &y, &m, &d);
if(i!=3) return 3;
if(m<1||m>12) return 5;
rc=IsRunNian(y);
if(m==2 && rc==1) if(d>29 || d<1) return 6;
else if(d>mouth_date[m] || d<1) return 7;
return 0;
}
- · 如何实现多台主机的磁带机同时备份,加快备份速度
- · 远程拨号登录SCO UNIX主机
- · SCO限制ROOT用户远程登录的几种方法
- · SCO限制ROOT用户远程登录的几种方法
- · informix online 的三种备份方法
- · informix online的安装
- · 终端多屏对/etc/mscreencap文件的认识
- · 如何备份UNIX系统
- · 修改图形界面的默认终端
- · 备份Informix-Online数据库三法
- · 创建带vi编辑器的引导盘
- · SCO下转换大写金额的SHELL脚本
- · cc的基本用法
- · 一个shell编写菜单
- · tar解压
- · 网卡的配置和相关检测
- · dd 命令的用法
- · 分享SCO UNIX安装经验
- · swap--交换区配置
- · 用sed实现文件反转
- · Unix下打包命令的使用
- · 创建带网络功能的SCO UNIX 5.05应急软盘组
- · 如何在SCO UNIX 5中直接运行DOS/WINDOWS程序
- · Unix中限制root远程登录的方法
- · sco的管理工具
- · 轻松制作SCO UNIX系统备份
- · SCO Unix十大常见故障
- · 在sco 5.0.5中定时运行程序
- · 在SCO系统中配置非SCSI磁带设备
- · DAT磁带机安装(SCO UNIX 5.0.4)
- · 烧制2.88MB的应急引导盘
- · 创建一个包含vi的SCO5.05系统应急引导盘
- · 应急启动盘与安全管理
- · 创建带网络功能的SCO5.05应急软盘组
- · SCO root密码丢失的处理
- · 提升UNIX中文件系统使用效率
- · 在安装SCO OpenServer时如何设置硬盘驱动器
- · SCO 三种安装BTLD的方式
