diff options
Diffstat (limited to 'src/datetime.c')
-rw-r--r-- | src/datetime.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/datetime.c b/src/datetime.c index cbdf6b4..994d3fe 100644 --- a/src/datetime.c +++ b/src/datetime.c @@ -102,6 +102,18 @@ static const char *DATETIME_MISC_FMTS_[] = { " %a %b %d %H:%M:%S %Y ", }; +static struct tm DATETIME_EPOCH_ = { + .tm_sec = 0, + .tm_min = 0, + .tm_hour = 0, + .tm_mday = 1, + .tm_mon = 0, + .tm_year = 70, + .tm_wday = 4, + .tm_yday = 0, + .tm_isdst = -1, +}; + static void _datetime_reset_tm(struct tm *tm) { @@ -378,3 +390,13 @@ datetime_strftime_misc(const struct tm *tm, char **out, size_t *buf_sz, return _datetime_strftime(DATETIME_MISC_FMTS_, tm, out, buf_sz, buf, i); } + +double +datetime_diff_epoch(time_t t) +{ + time_t epoch; + + epoch = timegm(&DATETIME_EPOCH_); + + return difftime(t, epoch); +} |