Q&A

  • 기간별 날짜를 조건으로 for문을 이용할때.
안녕하세요.  델파이 공부를 하다가 어려운점이 있어서 이렇게 질문을 올려봅니다.

두개의 날짜 입력콤퍼넌트를 이용하여. 조회 시작날짜 종료날짜 이렇게 두개를 받고

for문을 이용해서

for i:=시작날짜 to 종료날짜 do
begine
//처리내용.
end;

이렇게 하고 싶은데 문제는 20061120일이 시작날짜이고 20061201일 종료 날짜이면

20061131 다음에 20061201에 대해서 처리해야 하는데 20061132가 처리되더군요.

참고해서 사용할만한 함수나 다른 방법이 있으면 좀 알려주세요.^^
2  COMMENTS
  • Profile
    Marek 2006.12.19 22:55
    안녕하세요..

    날짜도 정수로 표현될수 있습니다.
    답글을 쓰는 오늘(12월19일)은 정수로 39070이거든요.
    정수가 1이 추가되면 하루가 추가되는 것입니다.

    var
       R : real;
    begin
       R := Int(Now);
       Edit1.Text := FloatToStr(R);
    end;

    코딩해보시면 알수 있을 것입니다.

    따라서 R을 읽어서 정수(integer)로 변환하면 for loop를
    하루 증가분으로 돌릴수 있습니다.

    Marek....


  • Profile
    문지영 2006.12.19 22:49
    While 문을 이용하시면 될것도 같은데요...
    자세히는 기억이 안나지만
    간단히 써보면

    vDate := StartDate;
    While vDate < EndDate do  begin
    //처리내용
    vDate := vDate + 1
    end;

    구문이 맞는지는 모르겠지만 위에 참조하셔서 사용하시면 될것도 같습니다.
    아닐수도 있으니 넓은 아량으로 봐주세요...