avr-fw-modules/core/src/datetime2unix.c

19 lines
595 B
C
Executable File

#include <sys/time.h>
time_t datetime2unix(datetime_t *datetime){
time_t result = 0;
int schaltjahre = ((datetime->year - 1) - 1968)/4
- ((datetime->year - 1) - 1900)/100
+ ((datetime->year - 1) - 1600)/400;
int tage1970 = ((datetime->year - 1970) * 365) + schaltjahre + daysfromyearstart(datetime->month) + datetime->day;
if ( (datetime->month>1) && ((datetime->year%4==0) && ((datetime->year%100!=0) || (datetime->year%400==0)))){
tage1970++;
};
result = datetime->second + (60L * (datetime->minute + 60L * (datetime->hour + (24L * tage1970))));
return result;
};