Tulevan tai menneen päivämäärän laskeminen

Arduino:
Tulevan tai menneen päivämäärän laskeminen

How to:

Arduino ei suoraan tue päivämääräkäsittelyä, mutta voimme käyttää kirjastoja kuten TimeLib.h. Tässä esimerkki tulevan päivämäärän laskennasta:

#include <TimeLib.h>

void setup() {
  Serial.begin(9600);
  setTime(17, 30, 0, 8, 3, 2023); // Asetetaan nykyhetki (hh, mm, ss, pp, kk, vvvv)
}

void loop() {
  time_t nykyhetki = now();
  time_t tulevaisuus = nykyhetki + SECS_PER_DAY * 7; // Lisätään 7 päivää

  Serial.print(day(tulevaisuus));
  Serial.print(".");
  Serial.print(month(tulevaisuus));
  Serial.print(".");
  Serial.println(year(tulevaisuus));

  delay(30000); // Odotetaan 30 sekuntia ennen seuraavaa laskentaa
}

Deep Dive

Arduinon maailmassa ajankäsittely perustuu millis()-funktioon, joka laskee millisekunteja laitteen käynnistyksestä. Historiallisesti mikrokontrollerit eivät ole kelloneet päivämääriä mutta lisäkirjastot, kuten TimeLib, ovat tulleet avuksi.

Vaihtoehtoisesti RTC (Real-Time Clock) moduuleja voidaan käyttää tarkempiin aikaleimoihin ja ne säilyttävät ajan jopa virrankatkaisun aikana.

Päivämäärälaskennassa kannattaa huomioida karkausvuodet ja kuukausien eri pituudet. TimeLib-kirjasto hoitaa nämä yksityiskohdat puolestasi.

See Also