请较高手 :我再delphi5中怎么进行Tdate类型之间的加减运算date1-date2,而不是date1-27这样的运算date1、date2为Tdate型

解决方案 »

  1.   

    delphi 中沒有datediff函數,我們可以自定義一個
    adoquery1的sql為: select datediff(day,:a1,:a2) function tform1.datediff(date1:tdate;date2:tdate):integer;
     begin
     with adoquery1 do
     begin
      adoquery1.Close;
      adoquery1.Parameters.ParamByName('a1').Value:=date1;
      adoquery1.Parameters.ParamByName('a2').Value:=date2;
      adoquery1.Open;
      result:=adoquery1.Fields[0].Value;
     end;
     end;要求date1,date2之間的相差天數,直接用
    datediff(date1,date2)
      

  2.   

    decodedate可以把时间分成年,月,日,这样你就可以运算了。
      

  3.   

    >>delphi 中沒有datediff函數怎么可能?DateUtils单元里找去,换了个名字罢了计算个时间差搬SQL出来?太BT了吧!如果搞清楚时间是如何用浮点数表示的,时间差而已,Too Easy~~~
      

  4.   

    樓上的知道不妨直言嘛!還要搞清楚時間如何用浮點數表示,太麻煩了吧.
    DateUtils里的DaysBetween可以了.
      

  5.   

    DaySpan function
    Returns the number of days (including fractional days) between two specified TDateTime values.UnitDateUtilsCategorydatetime routinesDelphi syntax:function DaySpan(const ANow, AThen: TDateTime): Double;C++ syntax:extern PACKAGE double __fastcall DaySpan(const System::TDateTime ANow, const System::TDateTime AThen);DescriptionCall DaySpan to obtain the difference, in days, between two TDateTime values. Unlike the DaysBetween function, which only counts whole days, DaySpan reports incomplete days as a fraction of an entire day.