1 用edit指定 年,月,日,怎么得出datetime类型的?
2 怎么判断2个datetime类型的数值之差<15天?还需要别的关于datetime的使用~
(帮助里看不太明白)

解决方案 »

  1.   

    1 可以用DateTimePicker控件来得出DATETIME类型,如果用EDIT,那就需要检查一下该机器中的日期设置了,或者从得到的系统时间得到该机器的时间设置的间隔符,然后在年,月,日之间插入该间隔符,再用STRTODATE(),转换成DATETIME类型;
    2 直接相减就可以了
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
     str:string;
     ss:Tdatetime;
    begin
      showmessage(datetimetostr(strtodatetime(edit1.Text+'-'+edit2.Text+'-'+edit3.Text)));
      TryEncodeDateTime(strtoint(edit1.text),strtoint(edit2.text),strtoint(edit3.text),0,0,0,0,ss);
      showmessage(datetimetostr(ss));  showmessage(floattostr(now-ss)); //两个日期相减后,相差1为一天(24小时),0.5为12小时。5.25则为5天6小时.
    end;
      

  3.   

    将年,月,日转换成DateTime型
    function EncodeDate(Year:word,Month:word,Day:word):TDateTime;计算ANow和AThen两个时间之间的天数
    function DaysBetween(const ANow:TDateTime;const AThen:TDateTiem):Integer;
      

  4.   

    补充:在你的Unit里别忘了要Use一下DateUtils
      

  5.   

    DaysBetween不行啊,我要a-b>0 or <0 不能一直》0
      

  6.   

    DaysBetween不行啊,我要a-b>0 or <0 不能一直》0
      

  7.   

    DaysBetween不行啊,我要a-b>0 or <0 不能一直》0
      

  8.   

    strtodatatime(edit1.text);
    formatdatatime('yyyy-mm-dd',edit1.text)