/*
Primer korišćenja TimeLib.h biblioteke za pretvaranje epoche formata vremena u Readable format
*/
#include <TimeLib.h> //https://github.com/PaulStoffregen/Time/blob/master/TimeLib.h
String weekDays[7]={"Nedelja", "Ponedeljak", "Utorak", "Sreda", "Cetvrtak", "Petak", "Subota"};
long hexStringToDecimal(String hexString) {
long decimalValue = 0;
int hexLength = hexString.length();
for (int i = 0; i < hexLength; i++) {
char c = hexString.charAt(i);
int digitValue;
if (c >= '0' && c <= '9') {
digitValue = c - '0';
} else if (c >= 'A' && c <= 'F') {
digitValue = 10 + (c - 'A');
} else if (c >= 'a' && c <= 'f') {
digitValue = 10 + (c - 'a');
} else {
// Handle invalid characters if necessary
continue;
}
decimalValue = (decimalValue * 16) + digitValue;
}
return decimalValue;
}
void setup() {
Serial.begin(115200);
//Za primer : epoche format za datum i vreme: 2024-10-13 9:20:37 je = 1728811237
//Dodeljujemo promenljivoj željeni epoche zapis vremena iz kojeg kasnije izvlačimo parametre koji su potrebni
setTime(1728811237);
Serial.println("epoche format za datum i vreme: 2024-10-13 9:20:37 je = 1728811237");
Serial.print("Rezultat : ");
Serial.print(hour());
Serial.print(":");
Serial.print(minute());
Serial.print(":");
Serial.print(second());
Serial.print(" - ");
Serial.print(weekDays[weekday()-1]); // -1 je zato što vraća brojeve od 1-7, a nama treba od 0-6 za niz weekDays
Serial.print(" - ");
Serial.print(day());
Serial.print("/");
Serial.print(month());
Serial.print("/");
Serial.println(year());
long test22 = hexStringToDecimal("c7e3ec2c");
String x22 = String(test22);
Serial.println(test22);
Serial.println(x22);
unsigned long num = -941364180ul; // add a sufix ul
char mystr[40];
sprintf(mystr,"%lu",num); //l=long u=unsigned
Serial.println(mystr);
x22 = String(mystr);
Serial.println(x22);
}
void loop() {
}