학습내용

  • 라이브러리 함수 이해
  • 라이브러리 함수 활용

학습목표

  • 시간과 관련된 함수 라이브러리의 종류와 역할에 대해 설명할 수 있다.
  • 사용 가능한 라이브러리 함수를 개발에 적용할 수 있다.

 

라이브러리 함수 이해

1. 종류

 1) 헤더파일 : time.h

  (1) 시간 계산

    - clock : 시간 계산 함수

    - difftime : 두 시간 사이의 차이 계산

    - mktime : struck tm 구조체를 통해 epoch time을 구해내는 함수

    - time : 현재 시간

 

  (2) 시간 변환

    - asctime : 시간구조체를 문자로 변환

    - ctime : 시간변수를 문자로 변환

    - gmtime : UTC 시간으로 변환

    - localtime : 지역 시간으로 변환

    - strftime : 날짜와 시간으로 이루어진 문자열을 struct tm으로 변환

 

2. 라이브러리 변수

변수 설명
size_t * 부호 없는 정수형
clock_t  * 프로세서 시간 저장 변수 타입
time_t * 캘린더 시간 저장 변수 타입
struct tm * 날짜, 시간 처리 구조체

 

 1) tm 구조체

 

3. 관련 용어

 - Epoch Time : 1970년 01월 01일 00시 00분 00초를 기점으로 흐르는 시간

 - UTC 타입(Coordinated Universal Time) : 영국 그리니치 천문대(경도 0)을 기준으로 하는 세계의 표준 시간대

                                                        UTC+9  :  한국시간

 - Greenwich Mean Time, GMT : 영국 런던을 기점 , 뉴질랜드 웰링턴을 종점으로 하는 협정 세계시

 

라이브러리 함수 활용

1. clock

항목 내용
함수원형 clock_t clock(void);
 헤더 time.h
기능 프로그램 실행 후의 시간을 계산
매개변수 void
반환값 프로그램 실행 후 경과된 시간을 반환

 

2. time

항목 내용
함수원형 time_t time( time_t *t);
 헤더 time.h
기능 시스템의 시간
매개변수 time_t *t -> 시간 정보를 받을 변수
반환값 time_t -> 1970년 1월 1일 0시부터 함수를 호출할 때까지의 초

 

3. difftime

항목 내용
함수원형 시간의 차이를 계산
 헤더 time.h
기능 double difftime time_t time1, time_t time0);
매개변수 time_t time1 -> 시간 계산에서 빼지는 시간(after)
time_t time0 -> 시간 계산에서 빼는 시간(before)
반환값 double -> 두 시간의 차이

 

4. ctime

항목 내용
함수원형 char *ctime( const time_t *t);
 헤더 time.h
기능 time_t 시간 값을 일반적인 시간 문자열로 변환
매개변수 time_t *t -> 1970년 1월 1일 0시부터 함수를 호출할 때까지의 초
반환값 char * -> 초 단위의 시간을 읽기 편한 문자열로 변환한 문자열 포인터

 

5. strftime

항목 내용
함수원형 size_t strftime (char *restrict s, size_t maxsize, const char *restrict format, const struct tm *restrict 
timeptr);
 헤더 time.h
기능 struct tm 값으로 포맷에 맞춘 시간 문자열
매개변수 char *restrict s -> 문자열을 받을 버퍼 포인터
size_t maxsize -> 버퍼의 크기
const char *restrict format -> 날짜와 시간 정보를 나열하기 위한 문자열 포맷
const struct tm *restrict timeptr -> 날짜와 시간 정보
반환값 size_t -> 문자열의 길이
변환 문자열 의미 변환 문자열 의미
%a 요일 이름의 약자 %M 분(00-59)
%A 요일 이름 %p AM 또는 PM
%b 월 이름의 약자 %s 초(00-59)
%B 월 이름 %w 요일(0-6)
%c 지역 날짜와 시간 %x 지역 날짜
%d 날짜(01-31) %X 지역 시간
%H 시간(00-23) %y 연도(00-99)
%l(엘) 시간(01-12) %Y 연도(예, 2003)
%j 1월 1일 이후의 날짜
(001-366)
%% 펀센트 기호(%)
%m 월(01-12)    

 

6. localtime

항목 내용
함수원형 struct tm * localtime const time_t *
 헤더 time.h
기능 time_t 값에서 표준 시간 지역의 시간 값을 구하며 , 시간 정보는 아래와 같은 struct 값
매개변수 time_t *t -> 시간 time_t 값
반환값 struct tm * -> 시간에 대한 struct tm 값의 포인터

 

7. asctime

항목 내용
함수원형 char * asctime ( const struct tm * timeptr
 헤더 time.h
기능 tm 구조체를 문자열로 변환
매개변수 timeptr -> tm 구조체 포인터
반환값 Www Mmm dd hh:mm:ss yyyy

 

 

학습정리

 

1. 라이브러리 함수 이해

  • 시간 관련 라이브러리 함수는 time.h에 선언되어 있음
  • 시간 데이터 처리에는 시간 구조체 tm과 초 단위 시간변수 time_t가 있음

 

2. 라이브러리 함수 활용

  • 표준 출력 문장으로 많이 사용되는 함수 : printf();
  • 두 시간 사이의 차이를 구하는 함수 : difftime
  • 현재 시스템의 시간을 구할 수 있는 함수 : time
  • 초 단위 시간을 시간문자열로 변환하는 함수 : ctime
  • 지역 시간을 구하는 함수 : localtime
  • tm 구조체를 문자열로 변환하는 함수 : asctime