Buy the components
millis-hour-min-sec.ino
void setup() {
Serial.begin(9600);
while (!Serial) { }
Serial.println("Begin conversion from millis to readable time");
}
void loop() {
String readableTime;
getReadableTime(readableTime);
Serial.println(readableTime);
delay(5000);
}
void getReadableTime(String &readableTime) {
unsigned long currentMillis;
unsigned long seconds;
unsigned long minutes;
unsigned long hours;
unsigned long days;
currentMillis = millis();
seconds = currentMillis / 1000;
minutes = seconds / 60;
hours = minutes / 60;
days = hours / 24;
currentMillis %= 1000;
seconds %= 60;
minutes %= 60;
hours %= 24;
if (days > 0) {
readableTime = String(days) + " ";
}
if (hours > 0) {
readableTime += String(hours) + ":";
}
if (minutes < 10) {
readableTime += "0";
}
readableTime += String(minutes) + ":";
if (seconds < 10) {
readableTime += "0";
}
readableTime += String(seconds) + " ago";
}
BOARD?=esp32:esp32:t-beam
PORT?=/dev/cu.SLAB_USBtoUART
.PHONY: default lint all flash clean
default: all flash clean
lint:
cpplint --extensions=ino --filter=-legal/copyright *.ino
all:
arduino-cli compile --fqbn $(BOARD) ./
flash:
arduino-cli upload -p $(PORT) --fqbn $(BOARD)
clean:
rm -r build
This example contains a simple sketch to convert millis()
to readable time format in days, hours, minutes and seconds. And then it prints out the time lapsed after the last print of the time.