728x90
반응형
>>[C++ 관련 모든 글 보기]
1. 목표
millisecond단위 까지 시간 구하기, 사용하는 함수는 C함수 입니다.
2. 필요 헤더
1) #include <time.h>
- localtime_r() 사용을 위해 필요
- ftime() 에서 필요
- strftime() 에서 필요
2) #include <sys/timeb.h>
- struct timeb 에서 필요로함
3. 필요 함수
1) void ftime(struct *timeb);
- millisecond 까지 시간을 구하는 함수
2) struct tm *localtime_r(const time_t *timep, struct tm *result);
- 지역 시간을 구하는 함수
4. 구조체 정보
1) struct tm
#include <time.h> // C++ 에서는 <ctime>
struct tm {
int tm_sec; //초 0-59(대분의 시스템서 이렇게 나옵니다), 일부 시스템에서 0 ~ 61 까지
int tm_min; //분 0-59
int tm_hour; //시 0-23
int tm_mday; //일 1-31
int tm_mon; //월 0-11
int tm_year; //년 지금이 몇 년이 지났는지 (1900 이후), 고로 현재 2020은 120이 나옴.
int tm_wday; //요일 0-6 (일요일 부터 시작)
int tm_yday; // 1 월 1 일 부터 몇 일이 지났는지
int tm_isdst; // 0 보다 크면 서머 타임제를 실시, 0 이면 실시 안함
};
5. 예제 코드
#include <iostream>
#include <sstream>
#include <time.h>
#include <sys/timeb.h> // ftime() 및 struct timeb 떄문에 필요
int main()
{
struct timeb tb; // <sys/timeb.h>
struct tm tstruct; // 기본 사용가능
std::ostringstream oss;
char buf[128];
ftime(&tb);
// Thread safe 하기 위해서 localtime_r을 이용
if (nullptr != localtime_r(&tb.time, &tstruct)) {
strftime(buf, sizeof(buf), "%Y-%m-%d %T", &tstruct);
oss << buf; // 연-월-일-시-분-초
oss << tb.millitm; // millisecond 표시
}
std::cout << oss.str() << std::endl;
oss.str("");
return 0;
}
>>[C++ 관련 모든 글 보기]
728x90
반응형
'ProgrammingLang > c++' 카테고리의 다른 글
[C++ 개발자되기] 16. smart pointer (0) | 2020.02.24 |
---|---|
[C++ 개발자되기] 15. 파일 다루기 1부(rename, fileszie, directory listring, exists) (0) | 2020.02.10 |
[C++ 개발자되기] 13. 숫자 -> 문자 변환 AND 문자 -> 숫자 변환 (0) | 2020.01.08 |
[C++ 개발자되기] 12. text file read 및 write (0) | 2019.12.05 |
[C++ 개발자되기] 11. multi thread를 위한 lock 사용법 (0) | 2019.12.04 |