time_t mktime(struct tm *timeptr); 일시로 초단위 시간을 구하는 함수
입력 매개 변수 리스트
timeptr 일시
반환 값
일시를 초단위 시간으로 변환한 값
사용 예
//C언어 표준 라이브러리 함수 가이드 //time_t mktime(struct tm *timeptr); 일시로 초단위 시간을 구하는 함수 //오늘까지 살아온 일, 시, 분, 초를 계산 #include <stdio.h> #include <time.h> #define SECONDS_PER_DAY (24*60*60) #define SECONDS_PER_HOUR (60*60) #define SECONDS_PER_MIN (60) int main(void) { struct tm now_date, birth_date = { 0 }; time_t birth_time, now_time; long long gap_time; int year, month, day, hour, min, second; char buf[100]; //생년 월 일 입력 printf("생년 월 일 : "); scanf_s("%d %d %d", &year, &month, &day); birth_date.tm_year = year - 1900;//tm_year는 1900년을 기준 birth_date.tm_mon = month - 1; //tm_mon은 0이 1월 birth_date.tm_mday = day; time(&now_time);//현재 초 단위 시간을 구한다. birth_time = mktime(&birth_date);//분할 시각을 초 단위 시간으로 변환 gap_time = now_time - birth_time; //시간 차이를 구함(초) //살아온 일 계산 day = (int)gap_time / SECONDS_PER_DAY; gap_time = gap_time%SECONDS_PER_DAY; //살아온 시 계산 hour = (int)gap_time / SECONDS_PER_HOUR; gap_time = gap_time%SECONDS_PER_HOUR; //살아온 분 계산 min = (int)gap_time / SECONDS_PER_MIN; //살아온 초 계산 second = (int)gap_time%SECONDS_PER_MIN; localtime_s(&now_date, &now_time);//초 단위 값을 지역 시각(DateTime)을 구한다. asctime_s(buf, sizeof(buf), &now_date);//현재 시각을 버퍼에 출력 printf("오늘은 %s", buf);//현재 시각 출력 //살아온 일, 시, 분, 초 출력 printf("오늘까지 살아온 시간은 %d일 %d시 %d분 %d초\n", day, hour, min, second); return 0; }
출력
생년 월 일 : 2002 1 1 (입력) 오늘은 Sat Oct 31 01:38:28 2015 오늘까지 살아온 시간은 5051일 1시 38분 28초