求一个任意日期加上60天后得出年、月、日的算法
比如现有如下日期数据:
2004-01-13
2004-06-01
2004-11-07
现要得出日期所在60天后的日期,有什么好办法么?
注意日期是随意的,也就是一年中任何一天都可能出现

解决方案 »

  1.   

    转化成TDateTime,再加了60之后再转回来,呵呵。
      

  2.   

    二楼的方法,DateUtils单元中,看一下帮助
    function IncDay(const AValue: TDateTime; const ANumberOfDays: Integer = 1): TDateTime;
      

  3.   

    var
      DT1,DT2:TDateTime;
    begin
      DT1:=Date();
      DT2:=DT1+60;
    end;
      

  4.   

    用IncDay,可以计算出加60天后的日期,有可能要引用DateUtils单元;
      

  5.   

    用Delphi帶的函數:
    增加日期
    IncDay
    獲得年月日
    DecodeDate
      

  6.   

    为什么Label1.caption := dateTimeToStr(incday(2004-01-14,1));
    会显示成:1905-6-12???
      

  7.   

    IncDay的第一个参数必须为TDateTime类型的,你的2004-01-14是整数,计算结果是1989,转化成TDateTime型就是从1899年12月30日经过1989天的日期。
      

  8.   

    label1.Caption:=DateTimetoStr(IncDay(EncodeDate(2004,1,14),1));
      

  9.   

    我要的是算法,大家给的却是解决方法
    不过仍然感激大家的帮助!!
    我要实现的平台其实不在delphi里头,所以有算法就更好了
    我自己也能做出来,但细细想一下:要考虑的情况实在太多了
    再次说明一下:日期不是系统日期,而是任意的(或者说是所有的日期)