我要截取日期字段(当然是动态的),如'5月8日'中的8.怎么都截不到。请问为什么?
代码如下:
var selDate,yeahMask,Mathmask,daymask:string;
    i,j:integer;
begin
  SelDate := '5月8日';
  i:= pos('月',SelDAte);
  j:= pos('日',SelDate);
//  showmessage(inttostr());
  YeahMask := FormatDateTime('yy',now);
  Mathmask := copy(SelDate,1,i-1);
//  DayMask := copy(SelDate,i+1,j-1);  下面语句 showmessage(DayMask)显示为'日'
//    DayMask := copy(SelDate,i+1,j);   下面语句 showmessage(DayMask)显示为'日'
//    DayMask := copy(SelDate,i,j-1);  // 下面语句 showmessage(DayMask)显示为'月8'
    DayMask := copy(SelDate,i,j);  // 下面语句 showmessage(DayMask)显示为'月8日'
  showmessage(MathMask);
  showmessage(DayMask);
end;

解决方案 »

  1.   

    pascal语句不知有没有直接截取日期的
    在sql语句中有
    day()就可以拉
      

  2.   

    widestring(SelDate)应该可以了,汉字占两个子节,数字一个字节,这样无论汉字数字就都是两个子节了!
      

  3.   

    对的,对于String类型,汉字是两个字符,Copy的时候要考虑到这一点
    SelDate := '5月8日';
      i:= pos('月',SelDAte);
      j:= pos('日',SelDate);
      DayMask := copy(SelDate,i+2,j-i-2);  // 下面语句 showmessage(DayMask)显示为'月8日'
      

  4.   

    DayMask := copy(SelDate,i,j);改为
    DayMask := copy(SelDate,j-1,1);
    就可以了