ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
7 мая
959640 Топик полностью
Tech_ (19.11.2019 19:20, просмотров: 190) ответил Лагунов на а как по простому вычислить текущее время в формате unixtime (народ просит)? Т.е. есть стандартная дата и время от RTC (год, месяц, день, час, минута). Как-то лень все года складывать с 1970-го. :-)
Так устроит?  unsigned long int date_to_int(rtccTimeDate * tds) { unsigned short int y; unsigned char i; // m; rtccTimeDate td; for(i = 0; i < 8; i++) td.b[i] = 10*(tds->b[i] >> 4) + (tds->b[i]&0x0f); // TimeDate BCD to BIN y = 2000 + (unsigned short int)td.f.year; if(td.f.mon < 3) { td.f.mon += 12; y -= 1; } // else m = td.f.mon; return (unsigned long int)td.f.sec + \ 60UL*(unsigned long int)(td.f.min + 60UL*(unsigned short int)td.f.hour) + \ ((((unsigned long int)y * 1461UL) >> 2) + (unsigned long int)((7 + 306*(unsigned short int)td.f.mon) / 10) + \ (unsigned long int)td.f.mday - 730533UL)*86400UL + 946674000UL; // td->f.mday - 730533UL)*60*60*24 + 946674000UL; }