QZdate : string;(值为2002.09.20-2003.09.2)
 qyear,qmonth,qday,zyear,zmonth,zday:word;(分解出的起止日期)
  Qdate, Zdate:TDate;    qyear:=strtoint(copy(QZdate,1,4));
    qmonth:=strtoint(copy(QZdate,6,2));
    qday:=strtoint(copy(QZdate,9,2));
    zyear:=strtoint(copy(QZdate,12,4));
    zmonth:=strtoint(copy(QZdate,17,2));
    zday:=strtoint(copy(QZdate,20,2));
    Qdate:=EncodeDate(qyear,qmonth,qday);
    Zdate:=EncodeDate(zyear,zmonth,zday);
    
为什么组合出的Qdate值为37519而不是我需要的日期型的20020920,
Zdate的值为37866而不是20030902,请教了!!!

解决方案 »

  1.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      QZDate : String;
      QYear,QMonth,QDay,ZYear,ZMonth,ZDay : Word;
      QDate,ZDate : TDate;
    begin
      QZDate:='2002.09.20-2003.09.2';
      QYear:=StrToInt(Copy(QZdate,1,4));
      QMonth:=StrToInt(Copy(QZdate,6,2));
      QDay:=StrToInt(Copy(QZdate,9,2));
      ZYear:=StrToInt(Copy(QZdate,12,4));
      ZMonth:=StrToInt(Copy(QZdate,17,2));
      ZDay:=StrToInt(Copy(QZdate,20,2));
      QDate:=EncodeDate(QYear,QMonth,QDay);
      ZDate:=EncodeDate(ZYear,ZMonth,ZDay);
      ShowMessage(DateToStr(QDate));
      ShowMessage(DateToStr(ZDate));
    end;-------------------------------------------------------------这位老兄偶实在不知道为什么你的这些代码到了我这里就没有一个是错误的(上次就是,这次还是)!莫名其妙!