Obliczanie daty w przyszłości lub przeszłości

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).

Zobacz także: