long zeitinh(char *string, char trenn1, char trenn2, char trenn3) //wandelt einen String der eine Zeit enthält in hundertstelsekunden um. //erwartet wird ein string im format: HH:mm:ss:hh wobei der erste Doppelpunkt dem //trenn1, der zweite dem trenn2 und der dritte dem trenn3 entspricht. //Vorsicht: die funktion strtrenner() wird benötigt { long l_hundertstel; char s_temp[12]; l_hundertstel = 0; strcpy(s_temp, strtrenner(string, trenn1, 1)); printf("n%st", s_temp); l_hundertstel += atoi(s_temp) <em> 60 </em> 60 * 100; strcpy(s_temp, strtrenner(strtrenner(string, trenn1, 2), trenn2, 1)); printf("%st", s_temp); l_hundertstel += atoi(s_temp) <em> 60 </em> 100; strcpy(s_temp, strtrenner(strtrenner(strtrenner(string, trenn1, 3), trenn2, 2), trenn3, 1)); printf("%st", s_temp); l_hundertstel += atoi(s_temp) * 100; strcpy(s_temp, strtrenner(strtrenner(strtrenner(string, trenn1, 4), trenn2, 3), trenn3, 2)); printf("%sn", s_temp); l_hundertstel += atoi(s_temp); return l_hundertstel; } char *zeitformatieren(long zeitinh, char trenn1, char trenn2, char trenn3) //gegenstueck zu zeitinh() //formatiert die zeit mit den angegebenen Trennzeichen //als eingabe wird die zeit in hundertstelsekunden erwartet { long l_hundertstel; static char returnstring[20]; int stunden; int minuten; int sekunden; int hundertstel; l_hundertstel = zeitinh; stunden = l_hundertstel / 100 / 60 / 60; l_hundertstel -= stunden <em> 100 </em> 60 * 60; minuten = l_hundertstel / 100 / 60; l_hundertstel -= minuten <em> 100 </em> 60; sekunden = l_hundertstel / 100; l_hundertstel -= sekunden *100; hundertstel = l_hundertstel; strcpy(returnstring, " "); if(stunden >= 10) itoa(stunden, returnstring, 10); else itoa(stunden, &returnstring[1], 10); returnstring[2] = trenn1; if(minuten >= 10) itoa(minuten, &returnstring[3], 10); else { returnstring[3] = '0'; itoa(minuten, &returnstring[4], 10); } returnstring[5] = trenn2; if(sekunden >= 10) itoa(sekunden, &returnstring[6], 10); else { returnstring[6] = '0'; itoa(sekunden, &returnstring[7], 10); } returnstring[8] = trenn3; if(hundertstel >= 10) itoa(hundertstel, &returnstring[9], 10); else { returnstring[9] = '0'; itoa(hundertstel, &returnstring[10], 10); } return returnstring; } |