var 
dt1:tdatetime;dt1:=strtodate(edit_year1.text+'-'+combobox_month1.Text)
这样两边不匹配,怎样提取出dt1中的年月,不要日,以便和右边相符?

解决方案 »

  1.   

    var:s1;
    s1:=datatimetostring(dt1)
    这样就把日期时间转换成字符串了,接下来就是你自己的工作了。
    结帖吧,^_^
      

  2.   

    应该是:
    var s1:string;
    s1:=DateTimeToString(dt1);
    我刚才写的疏忽了
      

  3.   

    取所有的都可以,按下面的改一下,不过还是不大明白你的意思
    strtodate(edit_year1.text+'-'+combobox_month1.Text),后面不带日是非法的日期格式,当然转会出错strtodate(edit_year1.text+'-'+combobox_month1.Text + '-0')这样才行procedure TForm1.Button1Click(Sender: TObject);var
      Present: TDateTime;
      Year, Month, Day, Hour, Min, Sec, MSec: Word;
     begin
      Present:= Now;
      DecodeDate(Present, Year, Month, Day);
      Label1.Caption := 'Today is Day ' + IntToStr(Day) + ' of Month '
        + IntToStr(Month) + ' of Year ' + IntToStr(Year);
      DecodeTime(Present, Hour, Min, Sec, MSec);
      Label2.Caption := 'The time is Minute ' + IntToStr(Min) + ' of Hour '
        + IntToStr(Hour);
    end;
      

  4.   

    这是组合日期的例子
    procedure TForm1.Button1Click(Sender: TObject);var
      MyDate: TDateTime;
    begin
      MyDate := EncodeDate(StrToInt(Edit1.Text), StrToInt(Edit2.Text), StrToInt(Edit3.Text));
      Label1.Caption := DateToStr(MyDate);
    end;
      

  5.   

    补充:
    DateToSta(dt1)是将日期转换成字符串的,你应该用它
    DateTimeToString(dt1);将日期时间转化为制定格式的字符串。
    DecodeDate函数用于将日期分解
    这些具体用法可以参考delphi的帮助
      

  6.   

    LongTimeFormat:='yyyymmdd';var s1:string;
    s1:=LeftStr(DateToString(dtl),6);
      

  7.   

    一个日期型的值dt,可以用函数decodedate函数分解其年月日。
      

  8.   

    好像Formatedatetime('yyyy-mm',TDatetime)就可以获取你要的内容了把。
      

  9.   

    var
    a:string;
    b:=tdatetime;a:=edit_year1.text+'-'+combobox_month1.Text+'-'+'1';
    b:=formatdate('yyyy-MM,(strtodatetime(a)));
      

  10.   

    _Y:=formatdatetime('yyyy',dt1);
    _M:=formatdatetime('mm',dt1);
    _date:=_Y+_M;
      

  11.   

    formatdatetime('aaa',now);//当前星期
    formatdatetime('c',now);//以2003-8-16 23:03:23的形式显示当前日期和时间
    formatdatetime('d',now);//显示当前的日期 1被显示成1
    formatdatetime('dd',now);//显示当前的日期 1被显示成01
    formatdatetime('ddd',now);//显示当前的星期
    formatdatetime('ddddd',now);//以2003-8-1的形式显示年月日
    formatdatetime('dddddd',now);//以2003年8月1日的形式显示年月日
    formatdatetime('dddddd ddd',now);//以‘2003年8月1日 星期五’的形式显示年月日及星期
    formatdatetime('e',now);//显示年的最后一位2003被显示成3
    formatdatetime('ee',now);//显示年的最后二位2003被显示成03
    formatdatetime('eee',now);//显示年2003被显示成2003
    formatdatetime('h',now);//显示小时1被显示成1
    formatdatetime('hh',now);//显示小时1被显示成01
    formatdatetime('m',now);//显示月1被显示成1
    formatdatetime('mm',now);//显示月1被显示成01
    formatdatetime('mmm',now);//以‘八月’的形式显示月份
    formatdatetime('n',now);//显示当前分钟1被显示成1
    formatdatetime('nn',now);//显示当前分钟1被显示成01
    formatdatetime('s',now);//显示当前秒1被显示成1
    formatdatetime('ss',now);//显示当前秒1被显示成01
    formatdatetime('t',now);//以1:05的形式显示小时和分钟
    formatdatetime('tt',now);//以1:06:13的形式显示小时和分钟和秒
    formatdatetime('y',now);////显示年的最后二位2003被显示成03
    formatdatetime('yyy',now);//显示年2003被显示成2003
    formatdatetime('z',now);//显示当前毫秒1被显示成1
    formatdatetime('zz',now);//显示当前毫秒1被显示成01
    formatdatetime('zzz',now);//显示当前毫秒1被显示成001
      

  12.   

    樓上的很詳細了.
    取當前年月Edit1.Eext:=formatdatetime('yyyymm',now);
      

  13.   

    不好意思,有個字母寫錯了
      Edit1.Text:=formatdatetime('yyyymm',now);
      

  14.   

    你的意思是只取年月,不管日期,是吧,这样的话,也要加上一个象征性的日期来转化Tdate类型,我的经验是取1号
    var 
    dt1:tdatetime;dt1:=strtodate(edit_year1.text+'-'+combobox_month1.Text+'-1');
    例如edit_year1.text='1999'  combobox_month1.Text='8'
    这样得到的时间是1999-8-1 零点整