000
29.03.2007, 11:30 Uhr
virtual
Sexiest Bit alive (Operator)
|
Gegeben:
C++: |
#include <stdio.h>
typedef char TimeString[9]; // Format: hh:mm:ss
/* Wandelt einen Zeitstempel hh:mm:ss in die entsprechende Anzahl sekunden um. Rückgabe -1, wenn kein gültiger stempel. */ int timeStringToInt(const TimeString ts) { int h, m, s;
if (3 != sscanf(ts, "%02d:%02d:%02d", &h, &m, &s)) { return -1; }
return h*3600 + m*60 + s; }
/* Wandelt eine Sekundenzahl in einen Zeitstempel um. Rückgabe -1, wenn zeit nicht als Zeitstempel darstellbar (zugroß/klein) */ int intToTimeString(int t, TimeString ts) { if (t<100*3600 && t>=0) { sprintf(ts, "%02d:%02d:%02d", t/3600, (t/60)%60, t%60); return 0; } else { return -1; } }
|
Golfe intToTimeString und timeStringToInt ohne verwendung von Funktionen aus der C/C++ Library (also kein sscanf/sprintf et al.) -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |