wangxing8818 发表于 2007-09-05 17:19

如何判断用户输入的日期是否 合格

正在写一段参数为日期 的小程序
要求判断用户输入的日期是否合格

我不知道该如何判断
求大大们帮忙

ivhb 发表于 2007-09-05 18:48

比如你提示用户输入   yyyymmdd
然后就按照这个格式串作
rdefmtdate(),如果返回值<0,就表示非法了呗。
不管是输入格式不对还是日期非法都算非法了事。呵呵

wangxing8818 发表于 2007-09-06 10:36

昨天试过貌似不行   无论我输入的是什么日期   好象都是错的。。。。。
不过谢谢了   我再试试

东西仓库 发表于 2007-09-06 10:47

如果要控制用户输入的日期是否合理,在输入的时候就控制好,比如 日历式的 输入方式(代码网上多的是)

wangxing8818 发表于 2007-09-06 10:50

我也知道可以直接控制格式啊   但是假如客户输入错误总要有个错误日期的判断吧


2楼的大大

貌似没有rdefmtdate()这个函数啊。。。。。。。。只有rfmtdate这个函数。。。。。

东西仓库 发表于 2007-09-06 10:54

拖拉选择的日期难道还会错吗?(况且现在很多人就喜欢下拉式的操作,不用手工写)会错那也是前端程序没写好。

wangxing8818 发表于 2007-09-06 11:03

不过貌似现在经理要求的就是要有判断的。。。。。

ivhb 发表于 2007-09-06 11:07

原帖由 wangxing8818 于 2007-9-6 10:50 发表 http://bbs.chinaunix.net/images/common/back.gif
我也知道可以直接控制格式啊   但是假如客户输入错误总要有个错误日期的判断吧


2楼的大大

貌似没有rdefmtdate()这个函数啊。。。。。。。。只有rfmtdate这个函数。。。。。

我还不信了:)   
/usr/informix/incl/esql>grep 'rdefmtdate' *.h
sqlhdr.h:MI_EXT_DECL mint rdefmtdate(int4 *pdate, char *fmtstring, char *input);    // 看到了么?char *input相当于客户的输入,fmtstring就是你要求的客户输入的格式,可以显示的提醒yyyy/mm/dd,结果就是放入pdate
比如客户输入 "2007/02/29"(按照你的yyyy/mm/dd),
你调用
int4 x;
if (rdefmtdate(&x, "yyyy/mm/dd", "2007/02/29") < 0)
   printf("error \n");

不可以么?
sqlhdr.h:MI_EXT_DECL mint rdefmtdate();


[ 本帖最后由 ivhb 于 2007-9-6 11:08 编辑 ]

wangxing8818 发表于 2007-09-06 11:13

大大你是对的我错了
用rdefmtdate我也做出来了:)
谢谢了

shanshl 发表于 2007-09-07 08:23

前台应用程序来判断。
页: [1]
查看完整版本: 如何判断用户输入的日期是否 合格