Calcul d'une date future ou passée

Arduino:
Calcul d'une date future ou passée

Comment faire :

Voici un exemple simple pour ajouter des jours à la date actuelle avec une carte Arduino et afficher le résultat sur le moniteur série.

#include <RTClib.h>

RTC_DS1307 rtc;

void setup() {
  Serial.begin(9600);
  if (!rtc.begin()) {
    Serial.println("RTC introuvable");
    while (1);
  }

  if (!rtc.isrunning()) {
    Serial.println("RTC n'est pas en cours d'exécution !");
    rtc.adjust(DateTime(__DATE__, __TIME__));
  }
}

void loop() {
  DateTime now = rtc.now();
  DateTime futureDate = now + TimeSpan(10, 0, 0, 0); // Ajouter 10 jours à la date actuelle

  Serial.print("Date dans 10 jours: ");
  Serial.print(futureDate.day());
  Serial.print("/");
  Serial.print(futureDate.month());
  Serial.print("/");
  Serial.println(futureDate.year());

  delay(10000); // Attendre 10 secondes avant de réafficher
}

Sortie d’exemple:

Date dans 10 jours: 22/3/2023

Exploration approfondie

La gestion des dates a toujours été un sujet complexe en programmation à cause des différentes unités de temps et des exceptions comme les années bissextiles. L’Arduino utilise souvent des bibliothèques, comme RTClib pour les horloges en temps réel (RTC), pour manipuler des dates et des heures. D’autres méthodes incluent les calculs manuels ou l’utilisation des services d’heure réseau (NTP). L’implémentation préférera souvent les bibliothèques externes pour simplifier les calculs et prendre en compte les particularités du calendrier.

Voir aussi