比如一个文本框里是一个2012-3-4这样子的格式加上一个数字,比如5年、 6年、10年什么的,能得到的是一个字符串还是一个日期:
字符串转换为日期型怎么转,我用了STRTODATE(EDIT.TEXT)老是出错,不知道怎么引用,procedure TForm1.Button1Click(Sender: TObject);
var
  year,month,day:word;now2 : TDateTime;
begin
  now2:=date();
  decodedate(now2,year,month,day);
  label1.Caption := inttostr(year)+'年'+inttostr(month)+'月'+inttostr(day)+'日';//这里都可以正常运行edit1.text:=StrTodate(label1.caption);//这里出错
end;
错误提示:
[Error] Unit1.pas(38): Incompatible types: 'String' and 'TDateTime'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
问题1label1.Caption是一个字符串吗?
如何将edit1.text:=的内容转成一个日期型数据呢

解决方案 »

  1.   

    edit1.text:=label1.caption;

    edit1.text:=DateToStr(Date);
      

  2.   

    edit1.text:=DateTimeToStr(StrTodate(label1.caption));//这里出错
      

  3.   

    运行出错,提示不是一个有效日期,一个日期2012-3-5如何和一个数字相加,比如2012-3-5 再加一个数字6得到一个2018-3-5 ,这是如何实现的,而且如果2012-3-5和一个数字5.5相加又能得到什么结果?
    程序里好像直接用STRTODATE 就会出错
      

  4.   

    前面引用uses DateUtils;
    +5.5就是+5年再+上半年的意思吧implementation
      uses DateUtils;
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var temp:TDateTime;
    begin
    temp := IncYear(StrToDateTime('2012-3-4'),5);
    ShowMessage(DateToStr(IncMonth(temp,6)));
    end;
      

  5.   

    包含年月日字符串的日期型变量,delphi识别不了
      

  6.   

    strtodate转换必须是yyyy-mm-dd, 年月日要用‘-’来表示,才可转换