Q&A

  • [급질문]Maskedit에서 날짜에러 문제
Maskedit에서 날짜 형식으로 하고서



날짜 체크를 하는데요...



예를 들어서



2001/01/28



이렇게 되야 정상인데 만약



200 /01/08



이렇게 되면 에러메세지가 떠야 하는데...



함수를 썼어도 잘 되지를 않네요...



년도하고 가끔 월만 되구요...



또 위같은 경우 뿐만 아니라



2000/ 1/08

20 /1 / 8 등등등



잘못 입력했을 경우가 많은 경우가 있는데...



어찌하면 좋을까요~~



좋은방법이없을까요...



Maskedit 말고 그냥 Edit도 맞는지...



답변 부탁합니다...

1  COMMENTS
  • Profile
    정성훈 2001.07.28 08:46
    아이리스 wrote:

    > Maskedit에서 날짜 형식으로 하고서

    >

    > 날짜 체크를 하는데요...

    >

    > 예를 들어서

    >

    > 2001/01/28

    >

    > 이렇게 되야 정상인데 만약

    >

    > 200 /01/08

    >

    > 이렇게 되면 에러메세지가 떠야 하는데...

    >

    > 함수를 썼어도 잘 되지를 않네요...

    >

    > 년도하고 가끔 월만 되구요...

    >

    > 또 위같은 경우 뿐만 아니라

    >

    > 2000/ 1/08

    > 20 /1 / 8 등등등

    >

    > 잘못 입력했을 경우가 많은 경우가 있는데...

    >

    > 어찌하면 좋을까요~~

    >

    > 좋은방법이없을까요...

    >

    > Maskedit 말고 그냥 Edit도 맞는지...

    >

    > 답변 부탁합니다...





    안녕하세요.

    아직제가 초보라^^; 참고하실수 있으리라 믿구 올려봅니다.

    Maskedit 는 /가 잘 안먹네요.

    그리고 일수 같은경운 달마다 틀리니 더 자세히 하실려면

    달에 따라 일수를 계산하시면 될겁니다.

    그럼 20000.



    function TForm1.NumCheck( sData : String ) : Boolean;

    var

    i : Integer;

    bResult : Boolean;

    begin

    // ASC Code 값

    // '/' = 47 '0~9' = 48 ~ 57

    for i := 1 to 10 do

    begin

    if ( ( Ord( sData[ i ] ) >= 47 ) and ( Ord( sData[ i ] ) <= 57 ) ) then

    begin

    if Ord( sData[ i ] ) = 47 then

    begin

    if ( i = 5 ) or ( i = 8 ) then bResult := True

    else begin

    bResult := False;

    Break;

    end;

    end else begin // '/' 위치 검색.

    if ( i = 5 ) or ( i = 8 ) then

    begin

    bResult := False;

    Break;

    end else begin

    if i > 5 then // 월, 일수 비교.

    begin

    if ( ( StrToInt( Copy( sData, 6, 2 ) ) >= 1 ) and ( StrToInt( Copy( sData, 6, 2 ) ) <= 12 ) ) and

    ( ( StrToInt( Copy( sData, 9, 2 ) ) >= 1 ) and ( StrToInt( Copy( sData, 9, 2 ) ) <= 31 ) ) then

    bResult := True

    else begin

    bResult := False;

    Break;

    end;

    end;

    end;

    end;

    end else begin

    bResult := False;

    Break;

    end;

    end; //for

    Result := bResult;

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    if Numcheck( Edit1.Text ) then ShowMessage( '입력 확인' )

    else ShowMessage( '입력이 틀렸습니다.' );

    end;