标题:请教下,用什么方法判断日期输入是错的?
只看楼主
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:644
专家分:20
注 册:2014-1-16
结帖率:88.5%
已结贴  问题点数:20 回复次数:7 
请教下,用什么方法判断日期输入是错的?
比如输成2017-15-25 显然没有15月
2017-04-11 10:53
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:7 
你的日期是字符型还是日期型,不同的数据类型判断方法不一样
如果是日期型,输入时系统就会自动判断。

坚守VFP最后的阵地
2017-04-11 11:15
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:7 
有很多方法
就用text控件来说
1、在 text1.init 中初始化时,日期,直接使用这个值
* thisform.text1.init
this.value = {} &&初始化为空日期格式,这样,你输入错误的时候,是不会离开这个控件的

2、在 text1.init 中初始化时,字符,使用这个值用 ctod()函数转换
* thisform.text1.init
this.value = "" &&初始化为空字符
* thisform.text1.valid
if empty(ctod(allt(this.value)))
   messagebox("日期输入错误")
   return .f.
endif


2017-04-11 11:17
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
如果是字符型 EMPTY(CTOD("2017-15-25"))返回值为空,为.T.

坚守VFP最后的阵地
2017-04-11 11:19
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
得分:7 
如果输入域是日期型的,错误的日期是输入不了的。
如果是字符型,EMPTY(CTOD('2017-15-25'))为真时,输入错误.
2017-04-11 11:23
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
还可以通过自定义方法判断月、日输入是否错误

坚守VFP最后的阵地
2017-04-11 11:28
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:644
专家分:20
注 册:2014-1-16
得分:0 
一下有这么多答案啊,谢谢各位师傅了,我选用mywisdom88师傅的方法,把文本框的FORMAT设置成D,在INIT事件初始赋值,输错了就不能离开
2017-04-11 12:57
jsjd879087jd
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-2-20
得分:0 
受益了
2018-03-04 11:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-475990-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.400362 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved