| wkl 回复于:2002-08-06 20:15:12 |
| 你在什么编程环境下! |
| jiangnanxue 回复于:2002-11-14 10:09:50 |
| SCO UNIX 5.05环境 |
| lcz88990200 回复于:2002-11-14 10:21:13 |
| /***********************************************************************/ /*函数名称: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; } /***********************************************************************/ /*函数名称: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  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])  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; } |
| sdclearcase/" target="_blank" >ccf 回复于:2002-11-14 13:13:42 |
| 好啊 . |