delphi 中日期跟整数相加的问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 11:57:38
比如说2008-12-25 年+1 ,天-1,等于2009-12-24。
我在用
g_time:=inttostr(strtoint(formatdatetime('yyyy',qd_time.DateTime))+strtoint(n_num.text))+'-'+formatdatetime('mm',qd_time.DateTime)+'-'+inttostr(strtoint(formatdatetime('dd',qd_time.DateTime))-1)
这个转换成字符型的时候遇到 :比如日期为2009-02-01,+1年,-1天的话就变2010-02-00,哪个大哥给点别的方法!谢谢。。。。。。。。

decodedate(d1,nn,yy,rr) 先分解日期
d1:=encodedate(nn+1,yy,rr) 再组合日期,因为年加减没有限制,所以可以直接加减.
d1:=d1-1; 然后再日期直接减1就可以了.
如果月要加减就要先判断因为关系年的变化.如果是加就要先得出下一个月的天数.
d1:=d1+(encodedate(nn,yy+1,rr)-encodedate(nn,yy,rr));
如果是减就要先得出上一个月的天数.然后再减.
d1:=d1-(encodedate(nn,yy,rr)-encodedate(nn,yy-1,rr));

那太简单了
qd_time.DateTime:=qd_time.DateTime+1或-1就可以了。