C에서 시간을 조건문으로 하려고합니다.
글쓴이: damping / 작성시간: 화, 2003/03/18 - 9:14오전
안녕하세요. C초보자입니다.
지금 C에서 날짜를 체크하는 것을 만들려고 합니다.
제가 하려는 것은 시스템의 날짜(혹은 시간)와 주어진 날짜가 같을경우의
조건문을 만들려고 합니다.
그래서 알아보다가 time.h 에 struct tm을 사용하려고 했는데
잘 안되어서 설명 및 다른 방법에 대한 조언을 구하려고 합니다.
*tm은 연월일시간분초 와 tm_isdst 을 넣어주어야 되더군요.
그런데, tm_isdst의 역할을 무언지요?
그리고 전 날짜비교만을 할 것이기에 연도와 시간등은 필요가 없는데
다 해주어야하는지 모르겠습니다. 저함수를 사용하면 다 넣어줘야 제대로
시간을 가져오는 듯하더군요.
다음번에는 물론 시간만의 비교 혹은 시간을 포함한 비교도 해야겠지만
일단은 멈추어선것이 날짜비교입니다.
일종의 스케쥴링이라는 것(아주 작은 시간비교 --;)을 만드는데
조언을 구합니다. 관련문서 추천도 감사드리겠습니다.
즐거운 시간되십시요.
Forums:
이렇게 함 해보세요
초 단위로 시각을 비교할려면
#include <time.h>
...
time_t now; -> time_t는 (unsigned) long 타입? 인가
time(&now); -> 현재시각을 1970년1월1일 00:00로 부터 경과된 시각
...
time(&after); -> 현재시각을 1970년 1월1일 00:00로 부터 경과된 시각
시간 차이는
time_t between-time;
between_time = after-now;
글구 현재시각이 몇년몇월몇일몇시몇분몇초를 알려면
time_t now;
struct tm st;
char buf[14+1];
time(&now);
st=*localtime(&now);
sprintf(buf,"%04i%02i%02i%02i%02i%02i",1900+st.tm_year,
1+st.tm_mon,st.tm_mday,st.tm_hour,st.tm_min,st.tm_sec);
위와 같이 하면 될 것 같네요.
글구 tm_isdst는 저두 안쓰는 건데 섬머타임적용여부 같은 걸 나타내는 걸루
알고 있는 데 잘 안써서요...
작은 시간비교는 밀리세컨드 같은 건..
struct timeval {
long tv_sec;
long tv_usec;
};
요걸 쓰면 될 것 같구요.
struct timeval tv;
gettimeofday(&tv); // 이런 식으로 쓰면 될 듯한데..
함 해보세요.
댓글 달기