注册 登录
编程论坛 Delphi论坛

DateTimePicker把月的时间提取出来

aaron52088 发布于 2007-04-03 16:26, 3751 次点击

想问一下DateTimePicker的属性里只有date和datetime的,
如果我想把日期中月提取出来应该怎么做的.
就比如说要在edit1.text里面显示DateTimePicker日期中月的信息,该怎么做呢?
大家看看,谢谢先

11 回复
#2
anthony6342007-04-04 21:03
转化为字符串,s:=DateToStr(now); edit1.text:=s[6];
#3
aaron520882007-04-05 13:26
好的,谢谢你,我试试看先
#4
aaron520882007-04-09 08:28

我试了下,写了下面的程序:
var s,vs,s1:string;
begin
s:=datetimetostr(DateTimePicker1.DateTime);
VS:=inttostr(strtoint(s[6])+strtoint(editCKQX_CQ.Text));
s1:=datetimetostr(DateTimePicker2.DateTime);
s1[6]:=VS[6];
DateTimePicker2.DateTime:=strtodatetime(s1);

adoqueryCQ.SQL.Clear;
adoqueryCQ.SQL.Text:='Insert into 长期客户管理(……,cqrktime) values(……,'''+datetimetostr(DateTimePicker1.DateTime)+''','''+datetimetostr(DateTimePicker2.DateTime)+''')';
try
adoqueryCQ.ExecSQL;
except
showmessage('保存失败,请检查数据库!');
exit;
end;
showmessage('保存成功');
end;
可是在改动edit持卡期限的时候,保存的出库时间为什么不是strtoint(s[6])+strtoint(editCKQX_CQ.Text))相加的值呢?
会出现截图的错误
大家看看呀,help

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

#5
sgliuxiu2007-04-09 16:02
首先,你这样做的话,如果月份是10以上,怎么加呢?还有,如果加起来的月份要跨年度的话,年份是不是要变?

从你的抓图我看不出你要说的问题。月份相加应该没错的。
#6
aaron520882007-04-10 20:06

我把下面程序计算出来的s值放到EDIT中显示,
s:=datetostr(DateTimePicker1.Date);
VS:=inttostr(strtoint(s[6])+strtoint(edit1.Text));
s[6]:=VS[6];
Edit1.Text:=s;
显示到的数据只有“2007-”就是后面的数字都没有了,为什么呢?
是因为没有通过S[6]:=VS[6]赋值的都默认为空吗?

#7
sgliuxiu2007-04-10 23:27

当我的edit1.text='4'的时候,我调试看到的是这些内容,你自己看看问题出在哪?

只有本站会员才能查看附件,请 登录


从图中可以看出,到你最后那个语句的时候,s是"2007-F-10"了

[此贴子已经被作者于2007-4-10 23:30:50编辑过]

#8
xu20002007-04-10 23:35
MonthOf函数可以做到。
#9
aaron520882007-04-11 07:55
问一下sgliuxiu,那个调试是怎么做的啊?教我一下吧,3Q
#10
xu20002007-04-11 08:28
断点加监视。
#11
aaron520882007-05-07 09:46
请问xu2000,在用MonthOf函数的时候需要在uses中添加什么吗?
我用了MonthOf(now());会提示出错,
解答一下,谢谢了。
#12
aaron520882007-05-07 09:54

我知道了,在uses中加入DateUtils包,
注意转换就可以了,如floattostr(MonthOf(now()))。

1