0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 76
|
|
1 | |
добавление временного интервала в RTC15.12.2020, 12:04. Показов 661. Ответов 7
Метки нет (Все метки)
Доброго времени суток. Такой вопрос. Необходимо к текущему времени в RTC добавить интервал времени. При этом произвести учет даты с учетом количества дней в месяце и высокосного года.
0
|
15.12.2020, 12:04 | |
Ответы с готовыми решениями:
7
Задан момент начала временного интервала и его продолжительность. Определить момент окончания интервала Отсчет временного интервала Расчет временного интервала Программирование временного интервала |
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 76
|
|
15.12.2020, 15:41 [ТС] | 3 |
Этот подход я сейчас и реализую. Если секунд == 60 то надо к минутам прибавить += 1 а секунды сбрасываем в ноль. И далее учитывать часы, дни, месяцы, год. Количество дней в месяце и высокосный год.
Думал может сообщество предложит более оригинальное решение. Уточню такой момент - софт пишется для микроконтроллера stm32l4xx, компилятор gcc.
0
|
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 76
|
|
15.12.2020, 16:08 [ТС] | 5 |
Вполне возможно я не совсем понял. Тогда к текущему времени прибавим интервал в секундах и результат опять занесем в RTC. RTC самостоятельно исправит дату/время. Но мне не понятно. Переменная секунд uint8_t тоесть максимум 256 значение может содержать. А если мне надо прибавить интервал в несколько часов, то уже начнутся грабли... Могли бы вы более детально раскрыть ваш ответ.
0
|
15.12.2020, 16:18 | 6 |
Да куда уж детальнее-то?
Из часов считываем время и переводим в формат Unix. Храним в переменной типа uint64_t или time_t (в некоторой версии gcc его тип сменили с uint32_t на uint64_t ).Прибавляем количество секунд. Никуда не заносим и не исправляем (это вообще чего?). Високосные, месяцы и т.п. получаются уже при переводе из unix time в обычный вид. RTC тут ни при чём. Кто владеет пошаговым алгоритмом преобразования UNIX->YYMMDD. и обратно? Поделитесь пожалуйста! Из секунд в дату
0
|
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 76
|
|
15.12.2020, 17:38 [ТС] | 7 |
Спасибо
0
|
16.12.2020, 20:10 | 8 | ||||||||||
Перевод из unixtime в понятное для вас:
time_t получаются секунды. Добавили, например, 3600, получили +1 час.Т.н. учёт, о котором вы говорили, должен автоматом получаться из-за библиотечных функций mktime , localtime_r .Их описание: https://en.cppreference.com/w/c/chrono/localtime https://en.cppreference.com/w/c/chrono/mktime
0
|
16.12.2020, 20:10 | |
16.12.2020, 20:10 | |
Помогаю со студенческими работами здесь
8
SCHED_RR изменение временного интервала слайдер для временного интервала Вывод записей из временного интервала Отсеять из временного интервала время Таймер с дополнительным отслеживанием временного интервала Сравнение временного интервала(дат) с заданной InfluxDB оценка временного интервала записей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
|
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
|
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
|
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
|
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
|
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
|
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
|
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций
История планшетных компьютеров началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые. . .
|
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
|
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы
В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
|
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
|
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
|