注册 登录
编程论坛 VFP论坛

求助:VFP6.0k中,怎么把类型为N的变量数值转为C型的字符串?

强国学习 发布于 2020-06-24 15:42, 2809 次点击
    做了一个编辑框edit18,里面录入如2019-06-31的数据,最终是想通过ctod()转为日期型后用day(gomonth(date(year(thisform.edit18.value),1,31,month(thisform.edit18.value)-1)))做一个不能超过当年当月的总天数的判断。但是?type(thisforn.edit18.value)时,类型为N,str(thisform.edit18.value)时提示操作符,类型或数据不符,str(val(thisform.edit18.value))不提示,但是类型还是N。后substr(alltrim(thisfrom.edit18.value),1,4),取2019来试也是一样,求指导!
           as=substr(alltrim(thisform.edit18.value),1,4)
           ?type(as)       类型为N
           ?as             值为2019
           str(val(as))    不用val()时出错,用了无提示通过
           ?type(as)       类型还是为N
12 回复
#2
sdta2020-06-24 16:27
EDIT的值是字符型,不会是别的类型。
用TEXT录入数据不是更方便吗,想设置什么数据类型都可以
#3
强国学习2020-06-24 16:37
回复 2楼 sdta
那为什么我用type(),显示是N呢
#4
sdta2020-06-24 16:56
type()中的变量要加""

cValue = thisform.edit1.Value
thisform.Caption = TYPE("cValue")
#5
瓜瓜19902020-06-24 17:24
day(gomonth(date(year(thisform.edit18.value),1,31,month(thisform.edit18.value)-1)))这句函数括号不对吧.date参数都超过3个了.
thisform.edit18.value是字符型的,要把值取出来转换为日期型,
#6
lujunchang2020-06-25 15:06
as=substr(alltrim(thisform.edit18.value),1,4)
?type(as)       类型为N
?type('as')     类型为C
#7
lujunchang2020-06-25 15:24
day(gomonth({^subst(thisform.edit18.value,1,8)+"01"},1)-1)
用这一句试试
#8
kimhoo2020-06-25 21:17
可用ACTIVE日期控件
只有本站会员才能查看附件,请 登录
#9
强国学习2020-06-29 08:36
如thisform.edit18.value录入的是2019-06-29,用以下语句:
   ab=(substr(alltrim(thisform.edit18.value),6,2)+'/'+substr(alltrim(thisform.edit18.value),9,2)+'/'+substr(alltrim(thisform.edit18.value),1,4))
   ?ab     显示06/29/2019
   ?type("ab")   显示为C型
   ac=ctod(ab)   把字符型的ab转换成日期型并赋给ac
   ?ac           无显示
   ?type("ac")   显示为D型
ac无显示是我那里没有做对吗?
#10
吹水佬2020-06-29 08:57
回复 9楼 强国学习
闹鬼
截图看看
#11
强国学习2020-06-29 11:25
这是运行后的结果显示
只有本站会员才能查看附件,请 登录
#12
吹水佬2020-06-29 11:40
有显示
是空值
是否格式问题
#13
强国学习2020-06-29 12:31
检查了控制面板里的日历显示设置,是格式问题
1