1、如何把EDIT里的字符串“2003-08-12”的“-”去掉变成20030812?
     我用DECODEDATE函数只能显示成2003812!
  2、如何判断星期六星期天并把这两天去掉?
     比如说2003-08-09是星期六,2003-08-10是星期天。

解决方案 »

  1.   

    1
    var
    s:string;
    begin
       s:=Edit1.Text;
    while Pos('-',s) do
      Delete(s,Pos('-',s),1);
    end;
      

  2.   

    2
    首部 function DayOfWeek(const DateTime: TDateTime): Word; 
    功能 返回日期时间DateTime所在的星期说明 1(星期天),2(星期一),3(星期二),4(星期三),5(星期四),6(星期五),7(星期六)
      

  3.   

    to  hch_45(んこん) 
    第一个问题报错,类型不对啊
    [Error] Unit1.pas(32): Type of expression must be BOOLEAN
      

  4.   

    第一个问题搞定!
    应该是while Pos('-',s)>0 do第二个问题我也想过用DAYOFWEEK做,但是我如何在一段时间内判断呢?就是说我要把2003-08-01到2003-08-31内的星期天和星期六都选出来。能给个代码吗?
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
      x:TDateTime;
    begin
      for i:=1 to 31 do
      begin
        x:=encodedate(2003,8,i);
        if (dayofweek(x)=6) or (dayofweek(x)=7) then
          listbox1.Items.add(datetostr(x))
      end;
    end;
    别的日期你自己组合
      

  6.   

    to  scvzhang(scvzhang) 
    你的程序的确不错!谢谢
    但是如果我是跨月的话呢?如何定义I?
      

  7.   

    我的代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      s1,s2,s3:string;
    begin
      s1:=Edit1.Text;
      s2:=Edit2.Text ;
     while Pos('-',s1)>0 do
      begin
        Delete(s1,Pos('-',s1),1);
        showmessage(s1);
      end;
     while  Pos('-',s2)>0 do
      begin
        Delete(s2,Pos('-',s2),1);
        showmessage(s2);
      end;
      s3:=s1;
      while s3<s2 do  //我的目的是在S1和S2这段时间内做个循环执行一定的操作
      begin                但不知道日期型变量能不能自加啊?就是说我不知道  
        {                    2003-7-31之后它是不是会变成2003-8-1。会不会
          }               变成2003-7-32?如果能够怎么写?     
      end;
    end;