Ich habe ein Programm, das time() und localtime() verwendet, um eine interne Uhr zu setzen, aber dies muss geändert werden, so dass die interne Uhr unabhängig ist Benutzer und die "echte" Zeit. Ich muss in der Lage sein, eine vernünftige Startzeit einzustellen und sie vorwärts zählen zu lassen, abhängig von einem internen Timer des Programms. Irgendwelche Ideen über den besten Weg, dies zu erreichen? Hier ist der Auszug:Ersetzen von time() und localtime() durch benutzerunabhängige Äquivalente
#define ConvertToBCD(x) ((x/10) << 4) | (x % 10);
time_t tm;
time(&tm);
struct tm *tm_local= localtime(&tm);
tm_local->tm_year %= 100;
tm_local->tm_mon++;
timedata[0] = ConvertToBCD(tm_local->tm_year);
timedata[1] = ConvertToBCD(tm_local->tm_mon);
timedata[2] = ConvertToBCD(tm_local->tm_mday);
timedata[3] = (tm_local->tm_wday + 6) & 7;
if (!(TimeStatus & 0x02)) tm_local->tm_hour %= 12;
timedata[4] = ((tm_local->tm_hour < 12) ? 0x00 : 0x40) | ConvertToBCD(tm_local->tm_hour);
timedata[5] = ConvertToBCD(tm_local->tm_min);
timedata[6] = ConvertToBCD(tm_local->tm_sec);
Ich stimme zu, speichern Sie Ihre interne Zeit als Offset zur Epoche Zeit. –