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
[38935] Re:time_t로 구한 타임이 어디까지가 초 단위 입니까??
열씸! [cappuccino] 3887 읽음    2005-01-27 00:27
권세건 님이 쓰신 글 :
: 제가 time1 = time_t(&t)로 시간을 구했습니다.. 어떠한 값이 변수 time1에 치환되더군요

time_t(&t) 가 아니라 time(&t) 였겠죠.
time 함수는 1초 단위입니다. time 이라고 치고 F1 도움말을 보면 나오죠.

time gives the current time, in seconds, elapsed since 00:00:00 GMT, January 1, 1970, and stores that value in the location pointed to by timer, provided that timer is not a NULL pointer.

Return Value
time returns the elapsed time in seconds.
즉.
time1 = time(NULL); 하든 time(&time1); 하든지 하면 1초단위의 시간값이 나온단 이야기죠.

볼랜드에서 재공하는 Now() 함수를 쓰셔도 됩니다. double 형으로 리턴되는데
소숫점 위가 날짜, 소숫점 아래가 시간(초단위) 인고로
하루가 60초 * 60분 * 24시간 = 86400 초 이니 당연하게도 Now() 로 나온 값에 86400 을 곱하면
초단위의 자연수가 되죠. time1 = (int)(Now() * 86400); 라는 표현이 위와 같다는 말씀이죠.

허나, 원하시는 작업이 정확히 1초 경과 후 어떤 작업을 수행하는거라면
1초 단위 정확도의 함수로는 어림도 없을테고... ftime 함수를 쓰시면
구조체의 millitm 멤버에 1/1000초가, time 멤버에 1초 단위의 시간이 나옵니다.
struct timeb tb;
ftime(&tb); 하셨다면 1/1000 초 (밀리세컨드)는....
long millisec = tb.time * 1000 + tb.millitm; 으로 얻어진다는 이야기.

그러나~... ftime 함수의 해상도는 1/1000 초가 아니라 실은 1/18.2 초입니다.
메인보드의 리얼타임 클럭칩의 주파수가 그러하거든요.

고로, 보다 정확히 1/1000 초 단위의 정확도를 얻고 싶으시면 RDTSC를 쓰시지요...

+ -

관련 글 리스트
38933 time_t로 구한 타임이 어디까지가 초 단위 입니까?? 권세건 1341 2005/01/26
38935     Re:time_t로 구한 타임이 어디까지가 초 단위 입니까?? 열씸! 3887 2005/01/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.