19 lines
595 B
C
Executable File
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;
|
|
}; |