我现在要在一个Edit框里输入日期,另一个框里将这个日期加半年,如:
2003-01-05得到2003-07-05,2003-08-04得到2004-02-04,
2003-10-31得到2004-05-01这好几种情况都能够处理,怎么办?

解决方案 »

  1.   

    你先把string转换为日期型,然后
    日期加五年,则
    decodedate(date,year,month,day); 
    date:=encodedate(year+5, month, day);
    日期加五月,则
    decodedate(date,year,month,day); 
    date:=encodedate(year, month+5, day);
    等等,然后在转换string显示
      

  2.   

    function addyear(date1:tdatetime):tdatetime;
    var
      year,month,day:word;
    begin
      decodedate(date1,year,month,day);
      month:=month+6;
      if month>12 then
      begin
        month:=month-12;
        year:=year+1;
      end;
      try
        result:=encodedate(year,month,day);
      except
        day:=daysinmonth(encodedate(year,month,1));
        result:=encodedate(year,month,day);
      end;
    end;
      

  3.   

    转化成日期格式是肯定的,但是转化后你可以使用incmonth
    incday等函数,可以随便加日期,想怎么加就怎么加,具体察看帮助
    里的incXX就行乐