Arduino:
Сравнение двух дат
Как:
В Arduino вы можете сравнивать даты, используя библиотеку TimeLib.h
. Сначала установите ее. Затем ознакомьтесь с этим фрагментом:
#include <TimeLib.h>
void setup() {
Serial.begin(9600);
// Задаем два разных времени (год, месяц, день, час, минута, секунда)
// Здесь мы устанавливаем 3 марта 2023 года, 8:30:00 и 4 марта 2023 года, 16:45:00
time_t firstTime = makeTime({0, 30, 8, 3, 3, 2023});
time_t secondTime = makeTime({0, 45, 16, 4, 3, 2023});
// Сравниваем два времени
if (firstTime < secondTime) {
Serial.print("Первое время раньше.");
} else if (firstTime > secondTime) {
Serial.print("Второе время раньше.");
} else {
Serial.print("Оба времени одинаковые.");
}
}
void loop() {
// Здесь ничего нет
}
Пример вывода:
Первое время раньше.
Глубже
В Arduino нет встроенной поддержки даты и времени, поэтому мы используем такие библиотеки, как TimeLib.h
. До появления библиотек людям приходилось вручную вычислять и сравнивать даты — сложная задача из-за високосных годов, разной длительности месяцев и т. д.
Другие способы работы с датами включают модули RTC (Real Time Clock), такие как DS3231, которые сохраняют время даже когда Arduino выключен. Для сравнения вам все равно придется загружать даты в программу и сравнивать их так же, как мы сделали выше.
При реализации учитывайте часовые пояса и переход на летнее время, если это необходимо. TimeLib может работать с временем UTC, что обходит эти вопросы, но для местного времени требуется особое внимание.
См. Также
- Документация библиотеки TimeLib - Подробности использования библиотеки Time.
- Библиотека времени Arduino - Репозиторий GitHub для библиотеки времени.