uni писал(а):LONG UNIX для меня это time_t, значение которого отсчитывается от эпохи unix. Если у вас есть значение в этом формате, то как вы приведёте его в "человеческий вид"? Как показать по этому значению какой это год, месяц, день и т.д. Я понял вопрос в таком ключе.
Исходники эти сделаны для реализации софтового RTC на мк, который железным не оборудован. Если нужно узнать текущую дату из софтового RTC, то я использовал указанный набор функций.
С относительными вычислениями тоже не всё просто. Например, узнать разницу в календарных днях между двумя значениями в unix-формате: одно число - минута до полуночи, второе - минута после. Если считать в миллисекундах, то разница будет нулевая в днях. Если сначала привести к датам, то будет 1 день. Тут от задач зависит.
да,вы правы,если требуется из софтового UNIX получить год,месяц,день да еще и в текстовом читабельном варианте(вторник сегодня или суббота?

),то нужно очень заморочиться
а для высчитывания неких промежутков событий думаю можно обойтись парой операций:
Код: Выделить всё
now_number_day = timeUnix / 86400L;//получаем порядковый номер текущего дня с начала отсчета UNIX
now_day_seconds = timeUnix % 86400L; // высчитываем количество секунд с начала текущих суток
[/size]
секунды далее можно перевести в минуты и часы,само-собой....
это все для высчитывания,для внутреннего алгоритма работы MK..
из этих моих строк конечно не написать "насос включился в четверг пятого февраля",но можно вывести "насос включился три дня и пять часов назад" даже после сброса питания,предварительно сохранив время включения насоса в EEPROM,ведь для этого это все и делается...