반응형
안녕하세요 한주현입니다.
오늘은 C언어의 time.h 표준 라이브러리와 이를 활용하여 현재 시간을 출력하는 방법에 대해 알아보겠습니다.
C library - time.h
1 | #include <time.h> | cs |
C 언어 표준 라이브러리인 time.h 는 시간, 날짜에 대한 함수를 가지고 있습니다.
우리는 time_t 와 localtime 함수를 사용할 것 입니다.
1 2 | time_t t = time(NULL); struct tm tm = *localtime(&t); | cs |
time() 함수에서 사용하는 time_t형 변수 t를 정의합니다.
time_t형 변수 t를 struct tm 구조체 값으로 변환합니다.
여기서 localtime() 함수는 struct tm 구조체 포인터 값을 반환하므로
1 | struct tm tm = *localtime(&t); | cs |
의 형태로 썼습니다.
struct tm 구조체는 다음과 같이 정의되어 있습니다.
1 2 3 4 5 6 7 8 9 10 11 | struct tm { int tm_sec; /* 초, range 0 to 59 */ int tm_min; /* 분, range 0 to 59 */ int tm_hour; /* 시간, range 0 to 23 */ int tm_mday; /* 일, range 1 to 31 */ int tm_mon; /* 월, range 0 to 11 */ int tm_year; /* 1900년 부터의 년 */ int tm_wday; /* 요일, range 일(0) to 토(6) */ int tm_yday; /* 1년 중 경과 일, range 0 to 365 */ int tm_isdst; /* 써머타임 */ }; | cs |
tm 구조체는 모두 int 가 들어있습니다.
이를 printf로 출력해보면,
1 2 3 | printf("now: %d-%d-%d %d:%d:%d\n", tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); | cs |
로 나타낼 수 있습니다.
위의 예시를 하나의 코드에 담으면 아래와 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> #include <time.h> int main(void){ time_t t = time(NULL); struct tm tm = *localtime(&t); printf("now: %d-%d-%d %d:%d:%d\n", tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); return 0; } | cs |
1 | now: 2017-11-5 23:10:46 | cs |
오늘은 현재 시간을 C로 표현하고 time 표준 라이브러리에 대하여 알아봤습니다.
그럼 다음시간에 만나요~
반응형
'컴퓨터 > C & C++' 카테고리의 다른 글
[C언어] 문자열의 길이 구하기 - strlen (0) | 2017.11.06 |
---|---|
[C언어] incompatible.c:2:3: warning: incompatible implicit declaration of built-in function 해결 방법 (0) | 2017.11.06 |
[C언어] 정수 포인터 사용방법 (0) | 2017.11.05 |
[C언어] 002. C 언어 기본 문법 syntax (0) | 2017.10.17 |
[C언어] 001. Hello world 출력 (0) | 2017.10.16 |
댓글