kyuseo의 게임 프로그래밍

ONE_MIN_SEC, ONE_HOUR_SEC, ONE_DAY_SEC, ONE_WEEK_SEC :: 시간 관련 선언문 본문

C++ 개발

ONE_MIN_SEC, ONE_HOUR_SEC, ONE_DAY_SEC, ONE_WEEK_SEC :: 시간 관련 선언문

kyuseo 2007. 11. 18. 13:40

개요..

 

몇 시간, 며칠이 흘렀는지 검사할 경우 초(sec) 또는 밀리초(ms)로 검사하기 위해서는 복잡한 곱셈연산을 해야 합니다. 그것을 편리하고 실수가 없도록 정의(define) 한 코드입니다.

 

 

코드

 

정의:

#define ONE_MIN_SEC        ( 60 )

#define ONE_HOUR_SEC    ( 60*60 )

#define ONE_DAY_SEC        ( 60*60*24 )

#define ONE_WEEK_SEC    ( 60*60*24*7 )

#define ONE_MONTH_SEC    ( 60*60*24*30 ) // 정확한달은아님

 

#define ONE_MIN_MS        ( 60*1000 )

#define ONE_HOUR_MS        ( 60*60*1000 )

#define ONE_DAY_MS        ( 60*60*1000*24 )

#define ONE_WEEK_MS        ( 60*60*24*7*1000 )

#define ONE_MONTH_MS    ( 60*60*24*30*1000 ) // 정확한달은아님

 

/// time( NULL ) 함수를사용하기편리하게만든함수

inline time_t time()

{

    return time( NULL );

}

 

 

예제:

    time_t ttStart = time();

    DWORD dwStart = timeGetTime();

 

     많은 시간 경과

 

    time_t ttProgress = time() - ttStart;

    DWORD dwProgress = timeGetTime() - dwStart;

 

    if( ttProgress > 5 * ONE_MIN_SEC ){ /* 5분이상경과됨*/ }

    if( ttProgress > 3 * ONE_HOUR_SEC ){ /* 3시간이상경과됨*/ }

    if( ttProgress > 2 * ONE_ DAY _SEC ){ /* 2일이상경과됨*/ }

 

    if( dwProgress > 5 * ONE_MIN_MS ){ /* 5분이상경과됨*/ }

    if( dwProgress > 3 * ONE_HOUR_MS ){ /* 3시간이상경과됨*/ }

    if( dwProgress > 2 * ONE_DAY_ MS ){ /* 2일이상경과됨*/ }