vesago (06.02.2013 20:42 - 20:47, просмотров: 78) ответил Гудвин на Никто не поделится функциями вычисления даты и времени из unix time (int32) для "Цэ"? Не монстрообразными, чтобы зарядить в мелкоконтроллер, с учетом високосных годов и пр...
1234
//::::::::::::::::::::::::::::::::::::::::::::::::::::::
//convert long seconds to Date and Time
//::::::::::::::::::::::::::::::::::::::::::::::::::::::
void Long_To_Data_Time(u32_t j, datatime_t *pdt)
{
u32_t d,m,y;
u32_t dat,t;
dat = j/86400l;
t = j - (dat * 86400l);
dat += 731000;
y = (4 * dat - 1) / 146097l;
d = (4 * dat - 1 - 146097l * y) / 4l;
dat = (4 * d + 3) / 1461;
d = (4 * d + 7 - 1461 * dat) / 4l;
m = (5 * d - 3) / 153;
d = (5 * d + 2 - 153 * m) / 5l;
y = 100 * y + dat;
if (m < 10)
{
m += 3;
}
else
{
m -= 9;
y++;
}
pdt->month = m;
pdt->year = y;
pdt->day = d;
pdt->sec = t % 60l;
t /= 60l;
pdt->hour = t / 60l;
pdt->minute = t % 60l;
}
Хотя это наверное не то. У меня начальная дата смещена в 2000-е.