Was ist der beste Weg, um in Arduino zwischen Datum, Stunden, Minuten, Sekunden in Unix-Zeitstempel in Millisekunden zu konvertieren? Ich muss diese Konvertierung durchführen, da ich RTC (Datum, Stunden, Minuten, Sekunden usw.) verwende und Unix-Zeitstempel über BLE kommuniziere
Ich habe einige Codes online gefunden, sie aber noch nicht ausführlich getestet.
byte second = epoch%60; epoch /= 60;
byte minute = epoch%60; epoch /= 60;
byte hour = epoch%24; epoch /= 24;
unsigned int years = epoch/(365*4+1)*4; epoch %= 365*4+1;
unsigned int year;
for (year=3; year>0; year--)
{
if (epoch >= days[year][0])
break;
}
unsigned int month;
for (month=11; month>0; month--)
{
if (epoch >= days[year][month])
break;
}
year = years+year;
month = month+1;
unsigned int day = epoch - days[year][month]+1;
unsigned int weekday = (dayOfMonth += month < 3 ? year-- : year - 2, 23*month/9 + dayOfMonth + 4 + year/4- year/100 + year/400)%7;
Und um in einen Unix-Zeitstempel zu konvertieren:
unsigned long epoch = (((year/4*(365*4+1)+days[year%4][month]+dayOfMonth)*24+hour)*60+minute)*60+second;
Gibt es eine Bibliothek in Arduino, die dies implementiert? Ich würde die Zuverlässigkeit über die Größe des Programms austauschen.