Adding time to struct tm
I would add a sanity check on the pointer as well:

void AddTime(int seconds, tm* date) {
    if (date == NULL) return;
    date-&gt;tm_sec += seconds;
    mktime(date);
}


But other than that it looks correct.

Reading some documentation on mktime, this appears to be what it was meant for.