comparison game_time.c @ 0:0fae5658fb0b

Initial revision
author gongo
date Thu, 02 Nov 2006 08:55:19 +0000
parents
children 0b65ca27f113
comparison
equal deleted inserted replaced
-1:000000000000 0:0fae5658fb0b
1 /**
2 * 2006/07/31(MON) Nobutaka OSHIRO
3 */
4 #include "game_time.h"
5
6 int game_time_get_msec() {
7
8 struct timeval now;
9 int time_msec;
10
11 /**
12 * *** man timeval ***
13 * struct timeval {
14 * time_t tv_sec // second
15 * suseconds_t tv_usec; // micro sec
16 * };
17 **/
18
19 // get time micro second ( micro second = 1 / 1000,000 second)
20 gettimeofday(&now, NULL);
21
22 // evaluation milli second ( milli second = 1 / 1000 second )
23 time_msec = now.tv_sec * 1000 + now.tv_usec / 1000;
24
25 return time_msec;
26 }
27
28
29 int game_time_conv_ms2cs (int msec)
30 {
31 return msec / 10 % 100; /** 1/100 sec **/
32 }
33
34 int game_time_conv_ms2sec (int msec)
35 {
36 return msec / 1000 % 60;
37 }
38
39 int game_time_conv_ms2minute (int msec)
40 {
41 return msec / 60000 % 60;
42 }
43
44
45 /**
46 * NAME:
47 * game_time_set_raptime - Return RAP TIME ("XXX:XX:XX")
48 *
49 * DESCRIPTION:
50 * 1. convert (int --> string)
51 * (int) argument2 (milli second) --> "XXX:XX:XX"
52 *
53 * 2. set ( string --> char * )
54 * "XXX:XX:XX" --> char *argument1
55 **/
56 void game_time_set_raptime (char *s,int msec)
57 {
58 char chminute[3];
59 char chsec[2];
60 char chcsec[2];
61 char raptime[10];
62 int minute = game_time_conv_ms2minute (msec);
63 int sec = game_time_conv_ms2sec (msec);
64 int csec = game_time_conv_ms2cs (msec);
65 int i;
66
67
68 if (minute < 10 ){
69 chminute[0] = ' ';
70 chminute[1] = '0';
71 chminute[2] = minute + 48;
72 } else if (minute < 100 ) {
73 chminute[0] = ' ';
74 chminute[1] = (minute / 10) + 48;
75 chminute[2] = (minute % 10) + 48;
76 } else {
77 chminute[0] = (minute / 100) + 48;
78 chminute[1] = (minute / 10) + 48;
79 chminute[2] = (minute % 10) + 48;
80 }
81 if (sec < 10 ){
82 chsec[0] = '0';
83 chsec[1] = sec + 48;
84 } else {
85 chsec[0] = (sec / 10) + 48;
86 chsec[1] = (sec % 10) + 48;
87 }
88
89 if (csec < 10 ){
90 chcsec[0] = '0';
91 chcsec[1] = csec + 48;
92 } else {
93 chcsec[0] = (csec / 10) + 48;
94 chcsec[1] = (csec % 10) + 48;
95 }
96
97
98 /** raptime[0-9] == "XXX:XX:XX\0" **/
99 raptime[0] = chminute[0];
100 raptime[1] = chminute[1];
101 raptime[2] = chminute[2];
102 raptime[3] = ':';
103 raptime[4] = chsec[0];
104 raptime[5] = chsec[1];
105 raptime[6] = ':';
106 raptime[7] = chcsec[0];
107 raptime[8] = chcsec[1];
108 raptime[9] = '\0'; // NULL
109
110
111 for (i = 0; raptime[i] != '\0'; i++) {
112 s[i] = raptime[i];
113 }
114 }