Цитата(Auratos @ Feb 28 2018, 14:29)

И вы также используете библиотечные функции localtime и mktime? А не могли бы вы, пожалуйста, привести пример своих функций для работы со временем?
Если применять стандартные функции, то там все просто. Вот пример сдвига из программы тестера плат на ПК.
GPSTmp.Time это timestamp в секундах от 1 янв 2000 года. На выходе печатается время в виде строки.
Код
struct tm time;
time.tm_year = 2000-1900;
time.tm_mon = 0;
time.tm_mday = 1;
time.tm_hour = 0;
time.tm_min = 0;
time.tm_sec = 0;
time.tm_isdst = 0;
time_t offset2000 = mktime(&time);
GPSTmp.Time += offset2000;
struct tm *ptime = localtime((time_t*)&GPSTmp.Time);
char time_str[81];
strftime(time_str, 80, "%d-%m-%Y %X", ptime);
fprintf(fpLog,"Time: %s\n", time_str);
А в программах на МК использую свои переписанные функции. В качестве примера см. различные открытые библиотеки.
Напр.:
date_time.cКод
UNIX time: 01-01-2000 00:00:00 = 946684800 sec = 10957 days
Цитата(scifi @ Feb 28 2018, 14:44)

Разрешите поинтересоваться, что за устройство разрабатываете? Откуда тяга заглянуть так далеко в будущее?

2038 год будет уже всего-то через 20 лет. А время бежит быстро. Вот сделаете вы какой-нибудь удачный прибор, и будут люди применять его 20 лет и хвалить. А тут раз - и из-за ошибки времени облом. Зачем сознательно закладывать ошибку, если ее можно легко избежать