시간 차이 구하는 간단 예제
사용하는 API 는 아래와 같습니다.
difftime()
double difftime(time_t time2, time_t time1);
- 인자로 받은 두 시간의 차이를 구해 return한다.
mktime()
time_t mktime(struct tm* timeptr);
- 인자로 받은 tm struct 를 time_t 형으로 변환한다.
strftime() - debug print 용으로 사용.
size_t strftime(char *s, size_t maxsize, const char *format, const struct tm * timeptr);
- tm struct 로 포맷화 된 문자열을 만드는 함수.
[C언어] time 사용법 - 시간 출력 포맷, 시간 / 문자열 변환
#include <stdio.h> t_min = diff_time / (60); diff_time = diff_time - (t_min*60);
t_sec = diff_time; printf ("time1과 time2 는 %d일 %d시 %d분 %d초차이가 납니다.\n", t_day, t_hour, t_min, t_sec); }
void main () { time_t time1; time_t time2;
const char* str_date1 = "2020-03-21"; const char* str_time1 = "10:31:44"; //const char* str_date2 = "2019-10-21"; //const char* str_time2 = "18:16:24"; const char* str_date2 = "2020-03-21"; const char* str_time2 = "10:30:44";
//char ret[256]; char *ret = NULL; char buf[256]; struct tm t; double diff_time;
// time1 생성 memset (&t, 0, sizeof(t)); strptime(str_date1, "%Y-%m-%d", &t); strptime(str_time1, "%H:%M:%S", &t); time1 = mktime(&t); strftime(buf, sizeof(buf), "%Y년 %m월 %d일 %H:%M:%S", &t); printf ("time1: %s\n", buf);
// time2 생성 memset (&t, 0, sizeof(t)); strptime(str_date2, "%Y-%m-%d", &t); strptime(str_time2, "%H:%M:%S", &t); time2 = mktime(&t); memset (&buf, 0, sizeof(buf)); strftime(buf, sizeof(buf), "%Y년 %m월 %d일 %H:%M:%S", &t); printf ("time2: %s\n", buf);
// time1 과 time2 차이 diff_time = difftime(time1, time2); printf ("diff_time: %d\n", diff_time);
print_date (diff_time); } |
- 출력 결과
[jungfo time] ./a.out time1: 2020년 03월 21일 10:31:44 time2: 2020년 03월 21일 10:30:44 diff_time: 1584754244 time1과 time2 는 0일 0시 1분 0초차이가 납니다. |
'프로그래밍 > 리눅스' 카테고리의 다른 글
[리눅스] hostname, 호스트명 변경 방법 (11) | 2020.11.27 |
---|---|
[리눅스] hostname 오류 "unable to resolve host" 해결 방법 (1) | 2020.11.27 |
[C언어] time 사용법 - 시간 출력 포맷, 시간 / 문자열 변환 (3) | 2020.11.16 |
[svn 오류] svn cleanup 오류 발생 시 해결방법 (3) | 2020.11.04 |
[리눅스/ftp 오류] 500 Illegal PORT command. (2) | 2020.10.30 |
댓글