Mercurial > hg > old > magoroku_racing
diff game_time.c @ 0:0fae5658fb0b
Initial revision
author | gongo |
---|---|
date | Thu, 02 Nov 2006 08:55:19 +0000 |
parents | |
children | 0b65ca27f113 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/game_time.c Thu Nov 02 08:55:19 2006 +0000 @@ -0,0 +1,114 @@ +/** + * 2006/07/31(MON) Nobutaka OSHIRO + */ +#include "game_time.h" + +int game_time_get_msec() { + + struct timeval now; + int time_msec; + + /** + * *** man timeval *** + * struct timeval { + * time_t tv_sec // second + * suseconds_t tv_usec; // micro sec + * }; + **/ + + // get time micro second ( micro second = 1 / 1000,000 second) + gettimeofday(&now, NULL); + + // evaluation milli second ( milli second = 1 / 1000 second ) + time_msec = now.tv_sec * 1000 + now.tv_usec / 1000; + + return time_msec; +} + + +int game_time_conv_ms2cs (int msec) +{ + return msec / 10 % 100; /** 1/100 sec **/ +} + +int game_time_conv_ms2sec (int msec) +{ + return msec / 1000 % 60; +} + +int game_time_conv_ms2minute (int msec) +{ + return msec / 60000 % 60; +} + + +/** + * NAME: + * game_time_set_raptime - Return RAP TIME ("XXX:XX:XX") + * + * DESCRIPTION: + * 1. convert (int --> string) + * (int) argument2 (milli second) --> "XXX:XX:XX" + * + * 2. set ( string --> char * ) + * "XXX:XX:XX" --> char *argument1 + **/ +void game_time_set_raptime (char *s,int msec) +{ + char chminute[3]; + char chsec[2]; + char chcsec[2]; + char raptime[10]; + int minute = game_time_conv_ms2minute (msec); + int sec = game_time_conv_ms2sec (msec); + int csec = game_time_conv_ms2cs (msec); + int i; + + + if (minute < 10 ){ + chminute[0] = ' '; + chminute[1] = '0'; + chminute[2] = minute + 48; + } else if (minute < 100 ) { + chminute[0] = ' '; + chminute[1] = (minute / 10) + 48; + chminute[2] = (minute % 10) + 48; + } else { + chminute[0] = (minute / 100) + 48; + chminute[1] = (minute / 10) + 48; + chminute[2] = (minute % 10) + 48; + } + if (sec < 10 ){ + chsec[0] = '0'; + chsec[1] = sec + 48; + } else { + chsec[0] = (sec / 10) + 48; + chsec[1] = (sec % 10) + 48; + } + + if (csec < 10 ){ + chcsec[0] = '0'; + chcsec[1] = csec + 48; + } else { + chcsec[0] = (csec / 10) + 48; + chcsec[1] = (csec % 10) + 48; + } + + + /** raptime[0-9] == "XXX:XX:XX\0" **/ + raptime[0] = chminute[0]; + raptime[1] = chminute[1]; + raptime[2] = chminute[2]; + raptime[3] = ':'; + raptime[4] = chsec[0]; + raptime[5] = chsec[1]; + raptime[6] = ':'; + raptime[7] = chcsec[0]; + raptime[8] = chcsec[1]; + raptime[9] = '\0'; // NULL + + + for (i = 0; raptime[i] != '\0'; i++) { + s[i] = raptime[i]; + } +}