在Delphi中,TDateTime就是一个Real(Double)类型,
可以直接加减。

解决方案 »

  1.   

    to GOHKI(豪鬼):
    能举个例嘛?比如我要对日加138,但有月的增加以及月大月小,谢谢你的答复,我会实时刷新帖子的
      

  2.   

    用EncodeDateTime()将年、月、日转换为TDateTime型
    用DecodeDateTime()进行相反操作
      

  3.   

    delphi的TDateTime类型就是Double类型,可以直接加减,而不需要什么DateAdd函数
      

  4.   

    to Jera(天...塌下来我也不怕):
    [Error] Unit1.pas(28): Undeclared identifier: 'day'
      

  5.   

    TDateTime dayDay := Day + 138
      

  6.   

    var
      date1,date2: TDateTime;
      yy,mm,dd: word;
    begin
      date2 := date1 + 138;
      decodedate(date2,yy,mm,dd);
    end;
      

  7.   

    to Nicrosoft(奈软):
    大虾:
    如果对月或年该怎操作?
      

  8.   

    var
      date1,date2: TDateTime;
      yy,mm,dd: word;
    begin
      date2 := date1 + 138;
      decodedate(date2,yy,mm,dd);
      //执行后,yy为年,mm为月,dd为日
    end; 
      

  9.   

    to GOHKI(豪鬼) :
    对月呢?
      

  10.   

    你要做什么?是传给sql语句吗?如果是你可以在sql中用dateadd()作这个工作,功能强大,却速度快。
      

  11.   

    to hughie(雨神) :
    我不时用SQL,而是程序中需要这些操作
      

  12.   

    真的没想过对月操作
    不如先DecodeDate()得到年月日
    把月加上一个数,判断月是否大于12,大于的话,就月减12,年加1
    然后在EncodeDate()得到日期型的
      

  13.   

    用IncMonth函数:
    function IncMonth(const Date: TDateTime; NumberOfMonths: Integer): TDateTime;
    不过不知道低于v5.0的有没有。
      

  14.   

    var
      date1,date2: TDateTime;
      yy,mm,dd: word;
    begin
      
      decodedate(date2,yy,mm,dd);
      mm:=mm+1;
      if mm>12 then
        begin
          yy:=yy + integer(mm/12);
          mm:=mm + trun(mm/12);
        end;
      encodedate(date1,yy,mm,dd);
      
    end; 这样可以吗?试试吧。
      

  15.   

    加月:新日期 := IncMonth(旧日期, 月数);如果月数为负数,则为减月数了。已经查出,Delphi 4也有此函数。