std::mktime

From cppreference.com
< cpp | chrono | c
Defined in header <ctime>
std::time_t mktime( std::tm* time );

Converts local calendar time to a time since epoch as a std::time_t object, ignoring the values of time->tm_wday and time->yday. The values of other components of time are not restricted to their usual ranges. A negative value of time->tm_isdst causes mktime to attempt to determine if Daylight Saving Time was in effect.

If successful, recalculates and updates all fields in time to fit their proper ranges.

Contents

[edit] Parameters

time - pointer to a std::tm object specifying local calendar time to convert

[edit] Return value

Time since epoch as a std::time_t object on success or -1 if time cannot be represented as a std::time_t object.

[edit] Example

Display the time 100 months ago

#include <iostream>
#include <iomanip>
#include <ctime>
 
int main()
{
    std::time_t t = std::time(NULL);
    std::tm tm = *std::localtime(&t);
    std::cout << "Today is           " << std::put_time(&tm, "%c %Z") <<'\n';
    tm.tm_mon -= 100;
    std::mktime(&tm);
    std::cout << "100 months ago was " << std::put_time(&tm, "%c %Z") << '\n';
}

Output:

Today is           Wed Dec 28 09:56:10 2011 EST
100 months ago was Thu Aug 28 10:56:10 2003 EDT

[edit] See also

converts time since epoch to calendar time expressed as local time
(function)