I don't understand.  Isn't this slightly backwards?  `exit(0)` from `main()` typically means "successful" while `mktime()` returns `-1` if an error occurred.

Also, is there a reason you're using POSIX interfaces when the standard `<time.h>` *also* provides `mktime()`?