Q&A

  • 두 날짜의 차이가 몇일인지 구하려면?
정수 =date2-date1

이라고만 하시면 아무리 해도 엉뚱한 답만 나와요...

1999/01/01

1999/12/31

의 두날짜의 차를 일수로 알고 싶습니다. 풀코드(실행가능)로 좀 가르쳐 주세요

엉~~엉~~~ 이문제 때문에 2틀째 고생중입니다...(별짖 다해봤음...ㅡ..ㅡ)

꾸벅 ...부탁드립니다.

2  COMMENTS
  • Profile
    Mr.Q 2000.11.19 01:28
    pallas wrote:

    > 정수 =date2-date1

    > 이라고만 하시면 아무리 해도 엉뚱한 답만 나와요...

    > 1999/01/01

    > 1999/12/31

    > 의 두날짜의 차를 일수로 알고 싶습니다. 풀코드(실행가능)로 좀 가르쳐 주세요

    > 엉~~엉~~~ 이문제 때문에 2틀째 고생중입니다...(별짖 다해봤음...ㅡ..ㅡ)

    > 꾸벅 ...부탁드립니다.



    1999/01/01를 1999-01-01형식으로 바꿔줘야합니다.



    저런식보단.. FormCreate에서..

    ShortDateFormat:='YYYY-MM-DD';

    이게 안먹힐 상황이라면,

    밑에꺼 참고해서... 변환해주세요.



    //----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



    TDate형식으로 바꾼다음....

    result:=DateTimeToTimeStamp(bbDate).Date-DateTimeToTimeStamp(aaDate).Date;

    result가 두날짜의 차이가 됩니다.



    좀 지저분한놈이지만,, MaskEdit를 쓰시덩가요.

    간단한걸 넘 어렵게 하시는듯. -_-;

  • Profile
    아이언 2000.11.19 01:28
    뭐 자세히는 잘 모르겠고. TDateTime의 정수부는 날짜, 소수부는 시간분초

    이런 형태로 되어 있을 겁니다.(TDateTime형태를 찾아 보세요..)



    > 정수 =date2-date1

    TDateTime 은 정수 타입으로 리턴 되지 않습니다. 실수 타입이죠..



    따라서

    실수 = 실수 - 실수

    이런 식의 코딩이 되어야 하죠..



    procedure TForm1.BitBtn1Click(Sender: TObject);

    var

    D1,d2 :TDateTime;

    begin

    D1 := StrToDate('1999-01-01');

    D2 := StrToDate('1999-12-31');



    ShowMessage(FloatToStr( D2 - D1 ));

    end;



    result := 364



    ----------------------------------------------------------------

    pallas wrote:

    > 정수 =date2-date1

    > 이라고만 하시면 아무리 해도 엉뚱한 답만 나와요...

    > 1999/01/01

    > 1999/12/31

    > 의 두날짜의 차를 일수로 알고 싶습니다. 풀코드(실행가능)로 좀 가르쳐 주세요

    > 엉~~엉~~~ 이문제 때문에 2틀째 고생중입니다...(별짖 다해봤음...ㅡ..ㅡ)

    > 꾸벅 ...부탁드립니다.