Calculando uma data no futuro ou passado

Arduino:
Calculando uma data no futuro ou passado

Como Fazer:

#include <Wire.h>
#include <RTClib.h>

RTC_DS3231 rtc;

void setup() {
  Serial.begin(9600);

  if (!rtc.begin()) {
    Serial.println("Não foi possível encontrar o RTC");
    while (1);
  }

  DateTime agora = rtc.now();
  Serial.print("Data e Hora Atual: ");
  Serial.println(agora.timestamp(DateTime::TIMESTAMP_FULL));

  DateTime futuro = agora + TimeSpan(30,0,0,0); // adiciona 30 dias à data/hora atual
  Serial.print("Data e Hora em 30 dias: ");
  Serial.println(futuro.timestamp(DateTime::TIMESTAMP_FULL));
  
  DateTime passado = agora - TimeSpan(5,0,0,0); // subtrai 5 dias da data/hora atual
  Serial.print("Data e Hora há 5 dias: ");
  Serial.println(passado.timestamp(DateTime::TIMESTAMP_FULL));
}

void loop() {
  // Este exemplo não possui código no loop.
}

Saída:

Data e Hora Atual: 2023-04-05T15:23:48
Data e Hora em 30 dias: 2023-05-05T15:23:48
Data e Hora há 5 dias: 2023-03-31T15:23:48

Mergulho Profundo

Calcular datas futuras ou passadas é uma prática antiga, que remonta a calendários e astronomia. No Arduino, isso tornou-se simples com a biblioteca RTClib para relógios de tempo real como o DS3231. Alternativas incluem usar a biblioteca Time.h ou até cálculos manuais com millis(), mas isso pode ser complicado por anos bissextos e diferentes tamanhos de meses. A RTClib lida bem com essas complicações, tornando o trabalho preciso e eficiente.

Veja Também