var
   nowtime:ttime;
begin
     nowtime := ttime(now);
    ShowMessage( timetostr(  nowtime  ));
    ShowMessage( timetostr(   ttime(  strtodatetime('2009-2-4 23:50' ) )));
     if   (nowtime  < ttime(  strtodatetime('2009-2-4 23:50' ) ))  then
     begin
       ShowMessage('true')
     end;
上面的代码 没有 显示 true 出来 很奇怪, 我用 ShowMessage( timetostr(  nowtime  ))  显示 是 20:50 , 用   ShowMessage( timetostr(   ttime(  strtodatetime('2009-2-4 23:50' ) ))) 显示 是 23:50 , 但不知道为什么没有 弹出 true 出来!!!

解决方案 »

  1.   

    ttime和tdate以及tdatetime都是一样,实际上是既包含日期也包含时间的。
    要比较,先用frac函数去掉整数部分,也就是日期
      

  2.   

    很正常。为什么要弹出true,条件本来就不成立嘛。现在的日期绝对是大于'2009-2-4 23:50',因为现在已经是2009年12月了。日期比较就是明天肯定比今天大,今天肯定比昨天大。日子越往后越大。
      

  3.   

    timetostr只获取时间的时分秒数据,所以打印显示没有年月日,年月日用datetostr获取
    而nowtime表示系统时间,包括年月日时分秒,如果'2009-2-4 23:50'比系统时间早,那判断语句就不成立,所以进不去
      

  4.   

    你做时间机器去2008年,在运行你那个程序就true了。