/***********************************************************
* 功能: 此程式只用于检查用户输入8位日期合法性 *
* 函数: int MyDateVerify() *
* 入口: char *date *
* 出口: Succees: return 0 *
* Faild : return -1 *
* 作者: LinXi *
* 日期: 2002-09-25 *
***********************************************************/
#include <stdio.h>
#include <string.h>
int MyDateVerify(char *date);
int main()
{
char inputDate[20];
int ret;
printf("\nPlease input the date:"
;gets(inputDate);
ret=MyDateVerify(inputDate);
switch (ret)
{
case -1:
printf("[E]: date is faild\n"
;return -1;
break;
case 0:
printf("Success\n"
;break;
}
return 0;
}
int MyDateVerify(char *date)
{
int i=0;
int year=0;
int month=0;
int day=0;
if (strlen(date)!=

return -1;
for (i=0;i<8;i )
{
if (date[i]<'0' || date[i]>'9')
return -1;
}
sscanf(date,"M--",&year,&month,&day);
if (year<1000 || year>=3000)
return -1;
if (month<1 || month>12)
return -1;
if (day<1 || day>31)
return -1;
if (month==4 || month==6 || month==9 || month==11)
if (day>30)
return -1;
if (month==2)
if ((year%4==0 && year0==0) || (year@0==0))
{if (day>29)
return -1;
}
else
{if (day>2

return -1;
}
printf("\ndate is: %s",date);
return 0;
}
| sdccf 回复于:2002-09-26 13:10:09 |
| 谢谢! |
| geekchi 回复于:2002-09-26 14:28:30 |
| 试了再说。 |
| wkl 回复于:2002-09-26 21:45:17 |
| 正缺,3KS |
| zxyunix 回复于:2002-09-27 11:11:43 |
| /** 看我的 **/ /***********************************************************************/ /*函数名称:IsRunNian */ /*功能介绍:判断是否为润年 */ /*调用格式:int IsRunNian( i_year  *//*参数说明:i_year 输入年份(yyyy) */ /*返回说明: 1 -- 是润年 */ /* -1 -- 不是润年 */ /***********************************************************************/ int IsRunNian(int i_year) { if( ((i_year%4==0)&&(i_year0!=0)) || (i_year@0==0)  return 1;return -1; } /***********************************************************************/ /*函数名称:CheckDate */ /*功能介绍:检查输入日期的合法性 */ /*调用格式:int CheckDate(s_date) */ /*参数说明: s_date 输入日期(格式yyyymmdd) */ /*返回说明:0 -- 合法 */ /* 其他 -- 不合法 */ /***********************************************************************/ int CheckDate(s_date) char *s_date; { int i,y,m,d; intmouth_date[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int rc; if(strlen(s_date)< return -101;for(i=0;i<8;i ) if ( !isdigit(s_date[i])  return -102;i=sscanf(s_date,"M--", &y, &m, &d); if(i!=3) return -103; if(y<0) return -104; if(m<1||m>12) return -105; rc=IsRunNian(y); if(m==2 && rc==1) { if(d>29 || d<1) return -106; } else if(d>mouth_date[m] || d<1) return -107; return 0; } |
| zxyunix 回复于:2002-09-27 11:19:57 |
凌曦您的程式是错的,输20020229的时候看看 ) |
| 月冷西湖 回复于:2002-09-27 11:21:02 |
| 去试试。 |
| 凌曦 回复于:2002-09-28 12:46:12 |
| 我来试试,呵呵! |
| 凌曦 回复于:2002-09-28 12:52:56 |
| 我知道了,是判断润年的条件用错了,应把 if ((year%4==0 && year0==0) || (year@0==0)) 改成 if ((year%4==0 && year0!=0) || (year@0==0))
文章整理:西部数码--专业提供域名注册、虚拟主机服务 相关文章
热点关注
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源 网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧 行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒 网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它 服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护 软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer 网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash 程序设计 Java技术 C/C++ VB delphi 网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术 操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD |


)

