This signature conflicts with my system /usr/include/time.h's declaration; it doesn't const-qualify.
Indeed, you're calling mktime(tm), and mktime()'s argument isn't const-qualified - and mktime really will modify what it's passed: if it's given a denormal date (e.g. month < 0, month > 11, day-of-month outside month range, etc.) it'll normalise it; and, in any case, it sets the tm_wday, tm_yday and tm_isdst fields.  So you definitely should drop the const here !