#include "RTClib.h"
RTC_DS1307 rtc;
enum DaysOfTheWeek {
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
};
void setup() {
Serial.begin(115200);
if (!rtc.begin()) {
Serial.println("Failed to find RTC");
Serial.flush();
abort();
}
}
void loop() {
DateTime now = rtc.now();
printCurrentTime(now);
Serial.println();
delay(3000);
}
void printCurrentTime(DateTime now) {
Serial.print("Current time: ");
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(getDayOfWeekString(now.dayOfTheWeek()));
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
}
String getDayOfWeekString(int dayOfWeek) {
switch (dayOfWeek) {
case Sunday:
return "Sunday";
case Monday:
return "Monday";
case Tuesday:
return "Tuesday";
case Wednesday:
return "Wednesday";
case Thursday:
return "Thursday";
case Friday:
return "Friday";
case Saturday:
return "Saturday";
default:
return "Invalid day";
}
}