시간 관련 라이브러리
학습내용
- 라이브러리 함수 이해
- 라이브러리 함수 활용
학습목표
- 시간과 관련된 함수 라이브러리의 종류와 역할에 대해 설명할 수 있다.
- 사용 가능한 라이브러리 함수를 개발에 적용할 수 있다.
라이브러리 함수 이해
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
'국비지원 학원 - JAVA기반 스마트앱 개발2021 > 프로그래밍 언어활용' 카테고리의 다른 글
변환.랜덤 라이브러리 (0) | 2021.08.10 |
---|---|
주소록 관리 시스템 (0) | 2021.08.09 |
도서관리 시스템 고도화(파일처리) (0) | 2021.08.08 |
파일 입출력 라이브러리(응용) (0) | 2021.08.08 |
파일 입출력 라이브러리(기초) (0) | 2021.08.08 |
댓글
이 글 공유하기
다른 글
-
변환.랜덤 라이브러리
변환.랜덤 라이브러리
2021.08.10 -
주소록 관리 시스템
주소록 관리 시스템
2021.08.09 -
도서관리 시스템 고도화(파일처리)
도서관리 시스템 고도화(파일처리)
2021.08.08 -
파일 입출력 라이브러리(응용)
파일 입출력 라이브러리(응용)
2021.08.08