Arduino:
Confronto tra due date

Come Fare:

#include <TimeLib.h>

void setup() {
  Serial.begin(9600);
  
  // Imposta due date
  tmElements_t data1, data2;
  setTime(0, 0, 0, 1, 1, 2023); // 01 gennaio 2023
  breakTime(now(), data1);
  setTime(0, 0, 0, 2, 1, 2023); // 02 gennaio 2023
  breakTime(now(), data2);

  // Confronta le date
  if (makeTime(data1) < makeTime(data2)) {
    Serial.println("Data1 è precedente a Data2");
  } else if (makeTime(data1) > makeTime(data2)) {
    Serial.println("Data1 è successiva a Data2");
  } else {
    Serial.println("Le date sono uguali");
  }
}

void loop() {
  // Il confronto viene effettuato una sola volta
}

Sample Output:

Data1 è precedente a Data2

Approfondimento

Il confronto di date su Arduino si appoggia spesso sulla libreria TimeLib, che offre una gestione del tempo simile a quella del linguaggio C. Nata dall’evoluzione delle prime funzioni di gestione del tempo su microcontrollori, è diventata uno standard de facto. Alternativamente, si possono confrontare timestamp UNIX, ma la TimeLib offre una semplificazione nell’uso e nella lettura del codice. Dettagli di implementazione comprendono la conversione delle strutture tmElements_t in timestamp per il confronto, e la gestione di fusi orari e DST potrebbe richiedere librerie aggiuntive come TimeZone.

Vedi Anche