C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[27745] [답변] 안되는 것은 당연합니다.
정성훈.해미 [sage5nor] 1128 읽음    2003-11-03 16:14
결론부터 말하자면..

다음의 비교하는 부분에서는 밀리초(ms) 까지 비교합니다.
if(ComTi == MyTi)

그래서 Set한 값은 밀리초 값이 00일텐데..

실제로 현재 시간을 읽어보면 정확히 00ms로 되는 것이 거의 불가능하기 때문에..

같은 값이 나올 수가 없습니다. 그러므로 조건문은 false값으로 되는 것이구요.

그럼 문제는 간단하죠?

ms비교를 없애면 됩니다.(초 단위까지만 비교하게 하면 되는 것이죠..)

이 것을 조금 응용하면 시간 단위, 분 단위로 비교할수 있습니다.

그럼 시작하지요.

[순서]
1. 현재 시간을 읽어온다.
2. 설정한 시간과 현재 시간의 차를 구한다.
3. 구한 차 값에서 시간, 분, 초를 추출한다.
4. 추출한 값(시간, 분, 초)이 0인지 검사한다.(밀리초 값은 비교하지 않음).
5. 끝.

[예제 소스]
// 타이머에 넣은 소스

    TDateTime SetTime, DifTime;
    Word Hour, Min, Sec, MSec;

    try{
        SetTime = StrToTime(Edit1->Text);
        DifTime = SetTime - Time(); // 설정값과 현재 시간의 차를 구하는 부분
        DecodeTime(DifTime, Hour, Min, Sec, MSec); // 추출하는 부분(시,분,초,밀리초 추출)

        if(!Hour && !Min && !Sec) // 추출한 시,분,초 값이 0이면(시, 분, 초 가 같으면)
        {
            // 일치할때의 처리
        }
        else
        {
            // 일치하지 않을때의 처리
        }
    }
    catch(...)
    {
        // Edit1->Text 값을 TDateTime로 변환 불가능 할 경우 처리
    }




조진수 님이 쓰신 글 :
:   제가 타이머를 이용해서 현재의 시간을 알아내고 제가 설정한 시간에 메세지를 뿌리려 하는데
:
:  안돼네여.... 답변좀 부탁드립니다.
:
:  void __fastcall TForm1::TestTimerTimer(TObject *Sender)
: {
:     TDateTime MyTi,ComTi;
:
:     MyTi = StrToTime("11:28:00 PM");
:     ComTi = Time();
:
:     if(ComTi == MyTi)
:         ShowMessage("OK");
: }

+ -

관련 글 리스트
27730 [질문]TDateTime 에 관해서... 조진수 1198 2003/11/02
33874     Re:[질문]TDateTime 에 관해서... blueSea 1241 2003/11/03
27745     [답변] 안되는 것은 당연합니다. 정성훈.해미 1128 2003/11/03
27735     Re:[질문]BlueSea님 테스트를 해보니 안되는것 같은데... 죄송하지만 다시한번 답변 부탁드립니다.(냉 조진수 1087 2003/11/03
33873         Re:Re:[질문]BlueSea님 테스트를 해보니 안되는것 같은데... 죄송하지만 다시한번 답변 부탁드립니다.(냉 blueSea 1038 2003/11/03
27737         아래와 같이 처리해보세요 손수토 1041 2003/11/03
27738             Re: 에러가 나는데.... 죄송하지만 답변좀부탁드립니다. 조진수 987 2003/11/03
33872                 Re:Re: 에러가 나는데.... 죄송하지만 답변좀부탁드립니다. 손수토 880 2003/11/03
27740                 Re:제어판에서 시간을 어떻게 봐야하는지... 몰라서 시간을 바꿔보는데.... 잘안돼네여(냉무) 조진수 1004 2003/11/03
33871                     Re:Re:제어판에서 시간을 어떻게 봐야하는지... 몰라서 시간을 바꿔보는데.... 잘안돼네여(냉무) 손수토 898 2003/11/03
27742                     Re:Re:제어판에서 시간을 어떻게 봐야하는지... 몰라서 시간을 바꿔보는데.... 잘안돼네여(냉무) 손수토 886 2003/11/03
27741                     Re:고쳐봤는데... 안돼네여.... 어떻게 해야 할지.... 조진수 979 2003/11/03
33870                         Re:Re:고쳐봤는데... 안돼네여.... 어떻게 해야 할지.... 손수토 850 2003/11/03
27743                         Re:손수토님 무슨 말습인지??? 조진수 795 2003/11/03
33869                             Re:Re:손수토님 무슨 말습인지??? 손수토 983 2003/11/03
27744                             Re:Re:손수토님...... 조진수 1018 2003/11/03
33868                                 Re:Re:Re:손수토님...... 손수토 970 2003/11/03
33867                                 Re:Re:Re:손수토님...... 손수토 1105 2003/11/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.