mktime() 함수 질문입니다
글쓴이: zooloo / 작성시간: 토, 2016/05/14 - 7:34오후
#include <ctime> #include <cstdio> int main () { struct tm first_tm, second_tm; time_t ftime, stime; first_tm.tm_year = 2016; first_tm.tm_mon = 5; first_tm.tm_mday = 14; first_tm.tm_hour = 12; first_tm.tm_min = 2; first_tm.tm_sec = 3; second_tm.tm_year = 2016; second_tm.tm_mon = 5; second_tm.tm_mday = 14; second_tm.tm_hour = 12; second_tm.tm_min = 10; second_tm.tm_sec = 11; ftime = mktime(&first_tm); /* 디버거로 확인결과 리턴시 올바른값을 리턴하지만 대입하면서 이상한값으로 변함 */ stime = mktime(&second_tm); ftime -= 10; /* 10초전을 구하고 싶었슴 */ stime += 20; /* 20초후를 구하고 싶었슴 */ time_t result_fisrt_tm, result_second_tm; result_first_tm = localtime(&ftime); result_second_tm = loacaltime(&stime); return 0; }
의도는 시간을 정한다음에 몇초전과 몇초후 시간을 구하려고 하는건데 잘안됩니다
어디서 잘못된 건가요?
Forums:
struct tm 및 localtime() 원형 확인
1. struct tm
tm.tm_year // years since 1900
tm.tm_mon // months since January(0-11)
즉 2016년 5월을 나타내려면 다음과 같이 해야 합니다.
first_tm.tm_year = 2016-1900;
first_tm.tm_mon = 5-1;
2. localtime() 반환 타입
struct tm * localtime (const time_t * timer);
localtime() 함수원형은 위와 같고, 반환형은 struct tm 포인터입니다.
그런데, 올려주신 소스에는 time_t 로 받고 있습니다.
3. 그리고 변수명과 함수명에 철자가 일치하지 않는 것도 보입니다만, 이건 직접 찾아보시길^^
고맙습니다
고맙습니다
댓글 달기