diff --git a/src/datetime.c b/src/datetime.c index 619051c..b6c3576 100644 --- a/src/datetime.c +++ b/src/datetime.c @@ -110,3 +110,21 @@ dc_datetime_gmtime (dc_datetime_t *result, return result; } + +dc_ticks_t +dc_datetime_mktime (dc_datetime_t *dt) +{ + if (dt == NULL) + return -1; + + struct tm tm; + tm.tm_year = dt->year - 1900; + tm.tm_mon = dt->month - 1; + tm.tm_mday = dt->day; + tm.tm_hour = dt->hour; + tm.tm_min = dt->minute; + tm.tm_sec = dt->second; + tm.tm_isdst = -1; + + return mktime (&tm); +} diff --git a/src/datetime.h b/src/datetime.h index ebd191e..748a736 100644 --- a/src/datetime.h +++ b/src/datetime.h @@ -52,6 +52,9 @@ dc_datetime_t * dc_datetime_gmtime (dc_datetime_t *result, dc_ticks_t ticks); +dc_ticks_t +dc_datetime_mktime (dc_datetime_t *dt); + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/libdivecomputer.symbols b/src/libdivecomputer.symbols index d534cc0..7ff4532 100644 --- a/src/libdivecomputer.symbols +++ b/src/libdivecomputer.symbols @@ -15,6 +15,7 @@ dc_buffer_get_data dc_datetime_now dc_datetime_localtime dc_datetime_gmtime +dc_datetime_mktime parser_get_type parser_set_data