Arduino:
Jämföra två datum

Hur gör man:

#include <RTClib.h>

RTC_DS3231 rtc;

void setup() {
  Serial.begin(9600);
  if (!rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  DateTime now = rtc.now();
  DateTime deadline(2023, 4, 30, 23, 59, 59);

  if (now < deadline) {
    Serial.println("Deadline not passed");
  } else if (now == deadline) {
    Serial.println("Deadline is right now");
  } else {
    Serial.println("Deadline has passed");
  }
}

void loop() {
  // Main loop does nothing in this example.
}

Exempelutmatning:

Deadline not passed

Fördjupning

Att jämföra datum är ett ämne så gammalt som programmering själv. Innan bibliotek som RTClib fanns, var datumhantering komplex och felbenägen. Alternativ till RTClib inkluderar TimeLib och inbyggda funktioner i många databashanterare. Viktiga detaljer i implementationen inkluderar att hantera skottår, tidszoner och övergångar till/från sommartid.

Se även