edit1.Text:=datetostr(incmonth(2006/11/25));
为什么显示的1900-02-06
而edit1.Text:=datetostr(date);
确可以显示2006-11-25怎么回事啊?

解决方案 »

  1.   

    哈哈哈,
    incmonth(2006/11/25))
    你知道你这里的两个'/',表示什么吗?
    是除号!你要先用字符串转成日期型,再用incmonth
      

  2.   

    edit1.Text:=datetostr(incmonth(strtodate('2006-11-25')));
      

  3.   

    小胡桃怎么又开一帖呢?这个回复免费,不要分。(你去看看你另外的一帖)procedure TFormDate.ButtonDateClick(Sender: TObject);
    var
      _Date: TDateTime;
      _Str: string;
      _DateAddYear: string;
      _DateAddMonth: string;
      _DateAddDay: string;
      _Year, _Month, _Day: Word;
      _Strings: TStrings;
    begin
      _Str := '2005/10/20';
      _Strings := TStringList.Create;
      _Strings.Delimiter := '/';
      _Strings.DelimitedText := _Str;
      try
        try
          _Year := StrToInt(_Strings[0]);
          _Month := StrToInt(_Strings[1]);
          _Day := StrToInt(_Strings[2]);
          _Date := EnCodeDate(_Year, _Month, _Day);
          _DateAddYear := FormatDateTime('YYYY/MM/DD', DateUtils.IncYear(_Date, 1));
          _DateAddMonth := FormatDateTime('YYYY/MM/DD', DateUtils.IncMonth(_Date, 1));
          _DateAddDay := FormatDateTime('YYYY/MM/DD', DateUtils.IncDay(_Date, 1));
        except
          ShowMessage(_Str+'不是有效日期');
        end;
      finally
        _Strings.Free;
      end;
    end;