Q&A

  • maskedit으로 날짜를 받아 제대로 입력했는지
maskedit으로 날짜를 받아 제대로 입력했는지를 체크하려고 합니다

년월일을 체크하여 공백이있거나 잘못 입력되었는지 체크하여 메시지를 내보내료고요...체크방법은요

1  COMMENTS
  • Profile
    김영대 1999.10.19 20:33
    열심이 wrote:

    > maskedit으로 날짜를 받아 제대로 입력했는지를 체크하려고 합니다

    > 년월일을 체크하여 공백이있거나 잘못 입력되었는지 체크하여 메시지를 내보내료고요...체크방법은요



    아래 함수의 사용방법은 다음과 같습니다

    indc_date('19990224', 45) -> 1999년2월24일 + 45일 날짜

    indc_date('19990224', -78) -> 1999년2월24일 - 78일 날짜

    indc_date('19990224', 0) -> 입력한 날짜('19990224')가 유효한지 검사



    function indc_date(yyyymmdd: String; disc: Integer): String;

    var

    yyyy,mm,dd: Integer;

    MyDate: TDateTime;

    Convert_OK: Boolean;

    begin

    yyyy := StrToIntDef(Copy(yyyymmdd,1,4),-1);

    mm := StrToIntDef(Copy(yyyymmdd,5,2),-1);

    dd := StrToIntDef(Copy(yyyymmdd,7,2),-1);

    if (yyyy <= 0) or (mm <= 0) or (dd <= 0) then

    begin

    indc_date := '';

    System.exit;

    end;



    if disc = 0 then

    begin

    try

    Convert_OK := True;

    MyDate := EncodeDate(yyyy, mm, dd);

    except

    on EConvertError do

    Convert_OK := False;

    end;

    if Convert_OK then

    begin

    indc_date := FormatDateTime('yyyymmdd', MyDate);

    end

    else

    begin

    indc_date := '';

    end;

    end

    else

    begin

    Convert_OK := True;

    try

    MyDate := EncodeDate(yyyy, mm, dd);

    except

    on EConvertError do

    Convert_OK := False;

    end;

    if Convert_OK then

    begin

    indc_date := FormatDateTime('yyyymmdd', MyDate+disc);

    end

    else

    begin

    indc_date := '';

    end;

    end;

    end;