time1:=strtodatetime('2004-09-01 20:20:05');
 time2:=strtodatetime('2004-09-07 15:27:02'); 计算time2-time1相差多长时间。 我原来想是不是可以将两个时间拆分为年,月,日,时,分,秒然后分别想减, 只是减得负数的时候需要借位,比较麻烦
 
 不知道有没有更简单的方法  望各位不吝赐教

解决方案 »

  1.   

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

  2.   

    uses dateutilsfunction HoursBetween(const ANow, AThen: TDateTime): Int64;..等等
      

  3.   

    楼上的是一部分,如果想得出俩个时间之间相差的时间的话,可以直接time2-time1就行了。
      

  4.   

    uses DateUtils;YearsBetween();  //年
    MonthsBetween(); //月
    DaysBetween;     //日
    HoursBetwen();   //时
    MinutesBetween();//分 
    SecondsBetween();//秒
      

  5.   

    就是Time2-Time1的得到一个double数值的,
    1就是1天,其他的可以通过/24/60/60就是多少″
      

  6.   

    Time2-Time1好像得到的是天数
    uses DateUtils;YearsBetween();  //年
    MonthsBetween(); //月
    DaysBetween;     //日
    HoursBetwen();   //时
    MinutesBetween();//分 
    SecondsBetween();//秒
    这些非常不错
      

  7.   

    哇,全让你们说了,我来接分
    几乎所有的时间函数全在DateUtils单元吧,uses dateutils,然后按住ctrl把鼠标左击dateutils,你就可以看到很多很多的函数了,呵呵
      

  8.   

    楼主是不是嫌分太多啊,这样的问题要开2个帖子??~!!http://community.csdn.net/Expert/topic/3348/3348602.xml?temp=.1547205
      

  9.   

    function WeeksBetween(const ANow, AThen: TDateTime): Integer;
    begin
      Result := Trunc(WeekSpan(ANow, AThen));
    end;