Arduino:
Obliczanie daty w przyszłości lub przeszłości
Czym i dlaczego?
Obliczanie daty w przyszłości lub przeszłości to ustalenie dnia, miesiąca i roku przed lub po danym dniu. Programiści robią to, by zarządzać czasem w projektach, np. w systemach przypomnień czy logowaniu zdarzeń.
Jak zrobić:
#include <TimeLib.h>
void setup() {
Serial.begin(9600);
setTime(8, 29, 0, 8, 4, 2023); // ustawienie czasu na 8:29 8 kwietnia 2023
}
void loop() {
time_t teraz = now();
time_t przyszlosc = teraz + 7 * SECS_PER_DAY; // data za tydzień
time_t przeszlosc = teraz - 30 * SECS_PER_DAY; // data sprzed miesiąca
Serial.print("Teraz: ");
pokazDate(teraz);
Serial.print("Za tydzień: ");
pokazDate(przyszlosc);
Serial.print("Miesiąc temu: ");
pokazDate(przeszlosc);
delay(10000); // czekaj 10 sekund
}
void pokazDate(time_t czas) {
Serial.println(day(czas));
Serial.print("-");
Serial.println(month(czas));
Serial.print("-");
Serial.println(year(czas));
Serial.println();
}
Dokładniej:
Kiedyś programiści musieli liczyć czasy samodzielnie — błąd roku 2000 to przykład. Teraz używają gotowych bibliotek jak TimeLib.h
. Można też korzystać z RTC
— modułów czasu rzeczywistego. Ważne są strefy czasowe i zmiany takie jak DST (Daylight Saving Time).