Как я могу преобразовать текущее время в время эпохи (2020 год - високосный) - PullRequest
0 голосов
/ 12 февраля 2020
Utils_Get_Epoch(Utils_tm_t *tm)
{
    uint32_t epoch = 0;
    const int mon_days[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365};
    uint16_t tyears, i, leaps;
    uint32_t tdays, thours;

    tyears = tm->tm_year - 70;
    leaps = (tyears + 2) / 4;
    i = (tm->tm_year - 100) / 100;
    leaps -= ((i/4) * 3 + i%4);

    tdays = mon_days[tm->tm_mon];
    tdays += tm->tm_mday - 1;
    tdays = tdays + tyears * 365 + leaps;

    thours = tm->tm_hour;

    epoch = (tdays * 86400) + (thours * 3600) + (tm->tm_min * 60) + tm->tm_sec; 
    return epoch;
}

получается, что возвращаемое значение всегда на 1 день опережает текущую дату, кто-нибудь может мне помочь с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...