日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

把字符轉(zhuǎn)換成日期?


定義的日期輸入類型為:2002-08-10的形式,如何判斷日期的有效性?
舉例:如果輸入了別的非法字符(如:s0f0-02-ds),如何保證輸入的日期是正確的?怎么判斷?

SCO Unix 5.05環(huán)境
/***********************************************************************/
/*函數(shù)名稱:IsRunNian */
/*功能介紹:判斷是否為潤(rùn)年 */
/*調(diào)用格式:int IsRunNian( i_year ) */
/*參數(shù)說(shuō)明:i_year 輸入年份(yyyy) */
/*返回說(shuō)明: 1 -- 是潤(rùn)年 */
/* -1 -- 不是潤(rùn)年 */
/***********************************************************************/
int IsRunNian(int i_year)
{
if( ((i_year%4==0)&&(i_year0!=0)) || (i_year@0==0) ) return 1;
return -1;
}
/***********************************************************************/
/*函數(shù)名稱:CheckDate */
/*功能介紹:檢查輸入日期的合法性 */
/*調(diào)用格式:int CheckDate(s_date) */
/*參數(shù)說(shuō)明: s_date 輸入日期(格式y(tǒng)yyymmdd) */
/*返回說(shuō)明: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];【把字符轉(zhuǎn)換成日期?】 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,"M--", &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;
}

    推薦閱讀