Q&A

  • 두개의 maskedit 로 일자 구하기?


안녕하십니까 ...

두개의 maskedit3, maskedit4로 일자를 구하려 하는데 잘안되네요...

maskedit3는 2000-01-01

maskedit4는 2000-03-01 입니다. 이때 일자를 60의 값입니다.

아래 처럼하니 error가 나네요....



var

n1,n2 : tdate;

n3 : integer;

begin

n1 := StrTodate(maskedit3.text);

n2 := StrTodate(maskedit4.text);

n3 := Trunc(n2-n1);

showmessage(inttostr(n3));





5  COMMENTS
  • Profile
    Mr.Q 2000.04.19 11:41
    초보1 wrote:

    >

    > 안녕하십니까 ...

    > 두개의 maskedit3, maskedit4로 일자를 구하려 하는데 잘안되네요...

    > maskedit3는 2000-01-01

    > maskedit4는 2000-03-01 입니다. 이때 일자를 60의 값입니다.

    > 아래 처럼하니 error가 나네요....

    >

    > var

    > n1,n2 : tdate;

    > n3 : integer;

    > begin

    > n1 := StrTodate(maskedit3.text);

    > n2 := StrTodate(maskedit4.text);

    > n3 := Trunc(n2-n1);

    > showmessage(inttostr(n3));

    >

    >

    저렇게 간단히도 되나요? 이건, 걍..



    function GetGapDays(aDate,bDate:TDateTime):integer;

    begin

    result:=DateTimeToTimeStamp(bDate).Date-DateTimeToTimeStamp(aDate);

    end;



    frmInput.btnCalcClick(Sender:TObject);

    var

    iGapDays:integer;

    bbDate, aaDate:string;

    begin

    bbDate:=mskEdit4.Text;

    aaDate:=mskEdit3.Text;

    iGapDays:=GetGapDays(StrToDateTime(bbDate),StrToDateTime(aaDate));

    ShowMessage(IntToStr(iGapDays));

    end;

  • Profile
    초보1 2000.04.19 18:59


    그렇게 하니 error가

    ''20000301' is not a valid date and time' 라고 하네요.





  • Profile
    Mr.Q 2000.04.20 00:19
    초보1 wrote:

    >

    > 그렇게 하니 error가

    > ''20000301' is not a valid date and time' 라고 하네요.

    >

    >



    날짜의 양식이 잘못 되면, StrToDate()에서 error메세지를 냅니다.

    없는 날짜를 입력한다던지, 날짜의 양식이 잘못되면 말이죠.

    20000301이라고 나왔다는 것은 전혀 editmask가 지정되어 있지 않은 상태를

    말해주는 것입니다. maskedit의 text는 editmask와 텍스트를 그대로 출력하니까요.

    예를들어, editMask속성에 !9999-99-99라고 되어있으면, editMask.text는

    1998-09-01이런 식이죠. 혹시, editmask를 해제하는 코드를 쓰신건지?

    edit에서나, maskedit에서나, 날짜의 차를 구하기 위해서는 날짜의 양식을

    1998-08-01형식이나, 98-09-01형식으로 입력해주어야 합니다.

    님의 코드에서, editMask.text가 어떤식으로 되어 있는지 부터 알아야 문제를

    해결할수 있을것 같습니다. 미리, editmask.text를 올려주셨으면 좋았을텐데요.

    만약 editmask.text의 내용이 20000301이라면, 2000-03-01형식으로 고쳐주어야

    합니다. 다음을 참고하세요.

    //-------------------------------------------------------------------------

    Function GetGapDays(bbDate,aaDate:TDateTime):integer;

    begin

    result:=DateTimeToTimeStamp(bDate).Date-DateTimeToTimeStamp(aDate).Date;

    end;



    Procedure Form1.Button1Click(Sender:TObject);

    var

    aYear, aMonth, aDay, aDate:string;

    bYear, bMonth, bDay, bDate:string;

    sbDate, saDate:TDateTime;

    iGapDays:integer;

    begin

    aDate:=maskedit1.text; //20000301(aDate)

    bDate:=maskedit2.text; //20000411(bDate)

    //----10001010형식을--"1000-10-10"형식으로변환----------------

    aYear:=copy(aDate,1,4); //2000

    aMonth:=copy(aDate,5,2); //03

    aDay:=copy(aDate,7,2); //01

    aDate:=aYear+'-'+aMonth+'-'aDay; //2000-03-01

    bYear:=copy(bDate,1,4); //2000

    bMonth:=copy(bDate,5,2); //04

    bDay:=copy(bDate,7,2); //01

    bDate:=bYear+'-'+bMonth+'-'bDay; //2000-04-11

    //-------------예외처리(시작)----------------------------------

    try

    saDate:=StrToDateTime(aDate)

    except begin

    Application.MessageBox('유효하지 못한 날짜를 입력하셨습니다'

    ,'첫번째날짜입력란', mb_ok);

    exit; end;



    try

    sbDate:=StrToDateTime(bDate)

    except begin

    Application.MessageBox('유효하지 못한 날짜를 입력하셨습니다'

    ,'두번째날짜입력란', mb_ok);

    exit; end;

    //-------------예외처리(끝)-----------------------------------

    iGapDays:=GetGapDays(sbDate,saDate);

    ShowMessage(IntToStr(iGapDays));

    end;





  • Profile
    조규춘 2000.04.19 05:29
    초보1 wrote:

    >

    > 안녕하십니까 ...

    > 두개의 maskedit3, maskedit4로 일자를 구하려 하는데 잘안되네요...

    > maskedit3는 2000-01-01

    > maskedit4는 2000-03-01 입니다. 이때 일자를 60의 값입니다.

    > 아래 처럼하니 error가 나네요....



    아래 처럼 해보니 error이 안생기더군요!(히~!)



    >

    > var

    > n1,n2 : tdate;

    > n3 : integer;

    > begin

    > n1 := StrTodate(maskedit3.text);

    > n2 := StrTodate(maskedit4.text);

    > n3 := Trunc(n2-n1);

    > showmessage(inttostr(n3));

    >

    >

    혹시

    maskedit에서... 속성중 editmask의 값을 잘못 넣은 것은 아닌지?

    !9999/99/00;1;_ 저는 이렇게 넣었는데...

    이상하군요! 나는 되는데..... 어디에서 에러가 생기는 겁니까?



  • Profile
    초보1 2000.04.19 19:08




    EditMask의 값를

    ####-##-##;0; 에서 !9999/99/00;1;_ 로 변경하여 실행하니



    그렇게 하니 error가

    ''2000-01-01' is not a valid date' 라고 하네요.







    • 구창민
      2000.04.19 09:46
      델파이어 wrote: > 안녕하세요..^^ > 개인적으로 사용 할 CD타이틀을 만드는데요, > CD타이틀 프로그램...
    • 안명호
    • 2000.04.19 05:59
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 안명호
      2000.04.20 02:03
      프로그래밍시 한글 폰트 사용할때 스크립트를 영문으로 두어 그런 현상이 나타나더군요... 2000에서는 ...
    • 구창민
      2000.04.19 09:43
      안명호 wrote: > 윈도우 2000에서 프로그램을 작성하여 윈도우 98에서 동작을 시켜보면 > > 프로그램 ...
    • 안명호
      2000.04.20 02:01
      구창민님 우선 성의 있는 답변 감사드립니다. 하지만 다른 방법으로 문제를 해결 하였습니다. 다른분...
    • 구창민
      2000.04.20 09:41
      안명호 wrote: > 구창민님 우선 성의 있는 답변 감사드립니다. > > 하지만 다른 방법으로 문제를 해결 ...
    • HART
      2000.04.19 18:36
      어떤 형식으로 디비 세개를 연결하여 출력하는야 따라서 코딩 조금씩 변경되는데.. 먼저 연결 출력 형태가...
    • 이언주
      2000.04.19 20:01
      답변해주셔서 감사드립니다.제가 출력을 해야될 부분은 일일일정표로서 금일일정,행사일정,차량정보,생일자...
    • HART
      2000.04.21 00:56
      델파이 예제에 보면 잘 나와 있습니다 위치는 bolanddemosquickrpt 있습니다. 소스 4줄 ~ 5줄 정도 됩니...
    • TeamX
      2000.04.19 11:45
      저도 잘은 모르지만 권장되는 폴더당 파일갯수는 500-600개 정도 인걸로 들은것 같습니다... 많으면 속...
    • 초보1
    • 2000.04.19 05:06
    • 5 COMMENTS
    • /
    • 0 LIKES
    • Mr.Q
      2000.04.19 11:41
      초보1 wrote: > > 안녕하십니까 ... > 두개의 maskedit3, maskedit4로 일자를 구하려 하는데 잘안되네...
    • 초보1
      2000.04.19 18:59
      그렇게 하니 error가 ''20000301' is not a valid date and time' 라고 하네요.
    • Mr.Q
      2000.04.20 00:19
      초보1 wrote: > > 그렇게 하니 error가 > ''20000301' is not a valid date and time' 라고 하네요. ...
    • 조규춘
      2000.04.19 05:29
      초보1 wrote: > > 안녕하십니까 ... > 두개의 maskedit3, maskedit4로 일자를 구하려 하는데 잘안되네...
    • 초보1
      2000.04.19 19:08
      EditMask의 값를 ####-##-##;0; 에서 !9999/99/00;1;_ 로 변경하여 실행하니 그렇게 하니 error...
    • mad
    • 2000.04.19 04:31
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.04.19 05:38
      mad wrote: > 멤버 디비에 저장된 총 멤버수는 어떻게 나타내죠? > > 그리고 만약 조건을 넣어도 상관 ...
    • mad
      2000.04.20 09:33
      레코드 숫자는 결국 어떻게 나타냅니까? Table1.RecordCount; 이건 어따가 쓰는거죠? 이걸 Edit에 연결...
    • 조규춘
      2000.04.20 09:56
      inttostr은 정수형을 문자형으로 바꾸는 겁니다. 히~! Edit1.text := inttostr(Table1.RecordCount); ...
    • mad
    • 2000.04.19 04:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.04.19 06:04
      mad wrote: > 모르겄어요. > 폼1에서 edit1,2가 있고 우편번호 버튼을 누르면 > 폼2가 뜨고 우편번호를 ...
    • mad
    • 2000.04.19 04:20
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.04.19 05:52
      mad wrote: > 폼에다가 타일 이미지를 까는 건데 FormPaint는 어떻게 선언하고 폼을 선택하고 오브젝...
    • mad
      2000.04.20 09:38
      저 에러는 안뜨는데 폼의 타일이 안보이네요. 이거 혹시 그냥폼에서 사용하는 건가요? 책에 있는 것은 무...
    • 조규춘
      2000.04.20 10:02
      저에게 그 소스를 압축해서 보내주이소.... 그럼 제가 아주 친절하게 주석문까정 다 달아서 보내드리...
    • mad
    • 2000.04.19 04:09
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Mr.Q
      2000.04.19 12:04
      mad wrote: > 파라독스를 사용하고 있습니다. > > 그런데 근디 > Datasorce1,Datasorce2, table1, DBG...
    • mad
      2000.04.20 09:28
      그런디 > with query1 do > begin > close; > sql.clear; > sql.add('select * from inout.db wher...
    • allenive
    • 2000.04.19 04:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 장경임
      2000.04.26 03:23
      allenive wrote: > procedure TForm1.BitBtn1KeyDown(Sender: TObject; var Key: Word; > Shift: TShif...
    • 구창민
      2000.04.19 09:54
      꿈틀이 wrote: > 제목 그대로 브라우져 안에 있는 text중에서 마우스 포인터가 위치한 곳에 text를 캡쳐하...
    • 꿈틀이
      2000.04.20 19:14
      답변 감사합니다. ^^; 야후에서 못 찾고 네이버에서 찾았는데 그곳이 맞는지 몰라도 이제는 컴포넌트 파...
    • hee
    • 2000.04.19 02:07
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.04.19 03:13
      hee wrote: > 폼의 크기에 따라 컨트롤의 크기를 변하게 하는 프로퍼티