ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
28 апреля
732686 Топик полностью
SciFi (31.01.2017 12:09, просмотров: 150) ответил Balda на ага. и как вы будете вычислять дату?
Вот, мне не жалко: void sec2tm(uint32_t sec32, struct tm* res) { static const int year_lengths[2] = { 365, 366 } ; static const uint8_t mon_lengths[2][MONSPERYEAR] = { {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} } ; long days, rem; int y; int yleap; const uint8_t *ip; uint64_t sec; sec = sec32 + 60 * tz; if (((sec32 & 0x80000000UL) == 0) && (sec32 != 0)) { sec += ((uint64_t)1 << 32); } days = sec / SECSPERDAY; rem = sec % SECSPERDAY; /* compute hour, min, and sec */ res->tm_hour = (int) (rem / SECSPERHOUR); rem %= SECSPERHOUR; res->tm_min = (int) (rem / SECSPERMIN); res->tm_sec = (int) (rem % SECSPERMIN); /* compute day of week */ if ((res->tm_wday = ((EPOCH_WDAY + days) % DAYSPERWEEK)) < 0) { res->tm_wday += DAYSPERWEEK; } /* compute year & day of year */ y = YEAR_BASE; if (days >= 40542) /* days in years 1900..2010 inclusive */ { days -= 40542; y += 111; } if (days >= 0) { for (;;) { yleap = isleap(y); if (days < year_lengths[yleap]) { break; } y++; days -= year_lengths[yleap]; } } else { do { --y; yleap = isleap(y); days += year_lengths[yleap]; } while (days < 0); } res->tm_year = y - YEAR_BASE; res->tm_yday = days; ip = mon_lengths[yleap]; for (res->tm_mon = 0; days >= ip[res->tm_mon]; ++res->tm_mon) { days -= ip[res->tm_mon]; } res->tm_mday = days + 1; } Где-то скоммуниздил позаимствовал. Кому-то больше нравится вызывать библиотечные функции из time.h.
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้