시간과 날짜 관련 함수들
Programming/C 2013. 2. 15. 03:55 |■ clock 함수 : 성능을 확인.
#include <time.h>
clock_t clock(void);
성공 시 프로세스 타임 반환, 실패 시 형 변환하여 -1 반환.
: '프로세스 타임(process time)'이라는 것이 있다. 이는 프로그램이 실행된 이후로 지나간 시간을 의미한다.
그리고 이 값이 1씩 증가하는 시간의 간격(이를 가리켜 '클럭 틱(clock tick)'이라 한다)은 매크로 CLOCKS_PER_SEC를 통해서 확인할 수 있다. 따라서 이 매크로의 값이 1000이면 이는 다음과 같은 의미로 이어지게 된다.
◎ 클럭 틱은 0.001초에 한번씩 발생(증가)한다.
◎ 1초에 총 1000회의 클럭 틱이 발생한다.
◎ 1초가 지날 때마다 clock 함수의 반환 값은 1000씩 증가한다.
세 문장은 모두 동일한 의미를 담고 있다.
※ clock 함수는 성능 측정을 위해서 사용이 되기 때문에 알고리즘을 평가하는 수단으로 사용이 된다.
■ time 함수 : 날짜와 시간
: 1970년 1월 1일 00시 00분 00초 이후로 경과한 시간을 표현.
UTC(Coordinated Universal Time) : '협정 세계시'라 하여 국제 사회가 사용하는 과학적 시간의 표준. 그리고 대한민국의 시간은 협정 세계시보다 9시간이 빠르다.
ctime 함수 : time함수가 반환한 값을 가지고 현재의 날짜와 시간을 계산.
#include <time.h>
char* ctime(const time_t* tptr);
성공 시 현재 지역의 시간과 날짜를 문자열의 형태로, 실패 시 NULL반환.
■ localtime 함수 : 년, 월, 일, 시, 분, 초 정보를 정수의 형태로 얻을 수 있다.
#include <time.h>
struct tm* localtime(const time_t* t);
현재 지역의 시간과 날짜 정보를 담은 tm 구조체 변수의 포인터 반환.
:ctime 함수의 장점은 현재 시간을 보기 좋게 출력할 수 있다는데 있다. 하지만 시간 정보를 가지고 연산을 해야 하는 상황에서는 활용하기 힘든 함수이다. 한 예로 프로그램상에서 두 개의 시간 정보를 비교해야 하는 상황이 등장할 수 있는데, 이러한 경우에는 정수의 형태로 년, 월, 일 그리고 시, 분, 초 정보를 추출할 수 있어야 한다.
이럴 때 유용한 함수가 localtime 함수이다.
struct tm
{
int tm_sec; //초 [0, 59]
int tm_min; //분 [0, 59]
int tm_hour; //시 [0, 23]
int tm_mday; //일 [1, 31]
int tm_mon; //월 [0, 11]
int tm_year; //년 [1900년 이후를 기준으로]
int tm_wday; //요일 [0, 6]
int tm_yday; //일 [0, 365]
int tm_isdst; //써머타임 적용여부
};
# time 함수의 활용
'Programming > C' 카테고리의 다른 글
Bit Field (0) | 2013.02.15 |
---|---|
Bit Mask (0) | 2013.02.15 |
난수 (Random Number) (0) | 2013.02.15 |
r+, w+ a+ 모드의 활용 (0) | 2013.02.15 |
표준 입력 및 출력 그리고 에러의 리다이렉션 (0) | 2013.02.15 |