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
[24646] Re: (a2-a1) * 86400.0 하시면 됩니다.
김상구.패패루 [peperu] 1037 읽음    2003-03-07 09:38
하안인 님이 쓰신 글 :
: TDateTime a1,a2;
: a1 = Now();
: .....
: a2 = Now();
:
: a2와 a1의 시간간격을 보려고 합니다.
: a2와 a1의 시간간격을 초로 보려고 하면 어떻게 해야 하나요.
:
:

TDateTime의 정수부분은 날짜를, 소수부분은 시간입니다.
이 성질을 이용하시면 좀 더 쉽게 TDateTime을 취급할 수 있겠죠?

TDateTime a1,a2;
a1 = Now();
.....
a2 = Now();

// 60 sec * 60 min * 24 hour == 86400 sec
// 그러므로 1 sec = 1 / 86400
double dDT = ((double)a2 - (double)a1) * 86400.0;

msec단위로 바로 얻고자 한다면 다음과 같이 하세요

DWORD dwTick, dwDT;
dwTick = GetTickCount();
....
dwDT = GetTickCount() - dwTick;
// sec로 바꾸고자 한다면
dwDT *= 1000.0;  // 1sec = 1000msec


단, 주의하실 점은 GetTickCount는 컴텨가 켜진 후 4294967296msec가 넘어가는(2의32승) 시점(약 49일정도 됩니다. 이게 그 유명한 윈도우 98의 49일버그죠)에서 0으로 바뀐 후 다시 계속 증가하는 성질이 있으므로 이를 고려하여 안전장치를 마련하셔야 합니다.

+ -

관련 글 리스트
24638 [질문]TDateTime을 초로변환하려면... 하안인 638 2003/03/06
24647     Re:[질문]TDateTime을 초로변환하려면... 정재만 791 2003/03/07
24646     Re: (a2-a1) * 86400.0 하시면 됩니다. 김상구.패패루 1037 2003/03/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.