¤ Comparing t with 0 doesn't take any sense (I know one system where ¤ (time_t)0 is J2000,0, so negative t are allowed before 2000-01-01 12:00:00Z
Ok, you are right. I just hope that the system you know does not encode
2000-01-01 11:59:59Z = (time_t) -1
as this value is reserved by the standard for error conditions.
A problematical situation on any implementation is distinguishing between an error return from mktime() and mktime() returning a legitimate -1 value. Another unpleasantness of the API. But this is the only place besides time() where the C standard has a function returning a time_t, and time() is not defined to have an error return.
An error code (or errno) would help here I think. If errno were set to a particular value when mktime() really couldn't represent the value, we'd have a way to distinguish between a valid -1 and and error -1 return value. Problem is, we'd have trouble getting the standards like X/Open to accept this, since they claim they don't support negative time_t's (ie: times before the Epoch). - Tom