有两个日期时间型数据,我想把他们相减,最后得到相差的天数,不知道该怎么做?
如:Time1:= StrToDateTime('2003-3-6 15:25:25')
    Time2:= StrToDateTime('2003-4-6 12:12:12');
怎么样减,最后得到他们相差的天数?他们之间相差31

解决方案 »

  1.   

    直接相减,整数部分即为结果。
    trunc(timer2-timer1)
      

  2.   

    function DaysBetween(const ANow, AThen: TDateTime): Integer;
      

  3.   

    谢谢,非常感谢!
    我发现一个问题,这样子减的话得出来的结果跟时间是有关系的
    比如:Time1:= StrToDateTime('2003-3-6 23:12:20');
          Time2:= StrToDateTime('2003-4-6 00:19:55');
    结果得30天!而另外一些时间的话又可以得31天!
    所以我想先取出日期再相减,不知道用什么函数可以取出日期的值?
      

  4.   

    所以我想先取出日期再相减??????????????
    trunc(timer2)-trunc(timer1);
    这样就OK 吧!!
      

  5.   

    DecodeDate(日期,年,月,日)
    DecodeTime(时间,小时,分,秒,毫秒)
      

  6.   

    算时间在delphi中是最容易的,如下:  
      
    var  ss : TDateTime  
      
    其实Tdatetime是一个双精度的浮点数,它的小数点前表示天数:   
      
    如,  ss := ss + 20 表示从ss开始向后20天,如果 ss = 234.567    
    它就表示 234.567天,当然是从公元0年开始计算的!  
    --------------------------------------------------------------------------------
    时间处理的秘密
    TDateTime类型实际上就是一个double(双精度数). 整数部分是日期小数部分是时间。例如var
      DateTime : TDateTime;
      Date : TDateTime;
      Time : TDateTime;
    begin
      DateTime := now;
      //获得日期
      Date := Trunc( DateTime );
      //获得时间
      Time := Frac( DateTime );
    end;日期运算
    如果你想增加几天,只需要加一个天数就可以了var
      DateTime : TDateTime;
    begin
      DateTime := now;
      //七天以后
      DateTime := DateTime + 7;
    end;想要知道两个日期的差距,只需要互相减一下就可以了。var
      StartTime, StopTime, Difference : TDateTime;
    begin
      Difference := StopTime - StartTime;
    end;
      

  7.   

    chenwc(海市蜃楼) :你为什么要用 ss 啊????她是我暗恋的一个女孩!!
                      你为什么要提她?你又让我想起她了!哎
      

  8.   

    支持,
    trunc(timer2)-trunc(timer1);
      

  9.   

    使用DaysBetween,DaySpan,HoursBetween和HourSpan函数
      

  10.   

    DaysBetween
    DaySpan
    HoursBetween
    HourSpan