28 {
29 const int doy[] = {1, 32, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335};
31 int days, sec, year = static_cast<int>(ep[0]), mon = static_cast<int>(ep[1]),
32 day = static_cast<int>(ep[2]);
33
34 if (year < 1970 || 2099 < year || mon < 1 || 12 < mon) return time;
35
36
37 days = (year - 1970) * 365 + (year - 1969) / 4 + doy[mon - 1] + day - 2 +
38 (year % 4 == 0 && mon >= 3 ? 1 : 0);
39 sec = static_cast<int>(floor(ep[5]));
40 time.
time =
static_cast<time_t
>(days) * 86400 +
41 static_cast<int>(ep[3]) * 3600 + static_cast<int>(ep[4]) * 60 +
42 sec;
43 time.
sec = ep[5] - sec;
44 return time;
45}