* Learn to transform unix time step to datetime
*/
#include <iostream>
#include <ctime>
const std::string weekdays[] = {
"Sunday", "Monday","Tuesday","Wendsday","Thursday","Friday","Saturday"
};
tm unix_2_datetime(time_t unix_time) {
auto tick = (time_t) unix_time;
struct tm tm_ = *localtime(&tick);
return tm_;
}
time_t datetime_2_unix(tm date_time) {
time_t unix_time = mktime(&date_time);
return unix_time;
}
void learn_struct_tm(const tm date_time) {
std::cout<<"\n#: Some members of struct 'tm': "<<std::endl;
std::cout<<"> weekday: "<<weekdays[date_time.tm_wday]<<std::endl;
std::cout<<"> hour: "<<date_time.tm_hour<<std::endl;
std::cout<<"> min: "<<date_time.tm_min<<std::endl;
}
int main() {
time_t unix_time;
time(&unix_time);
tm date_time = unix_2_datetime(unix_time);
unix_time = datetime_2_unix(date_time);
std::cout<<"#: Time format transform: "<<std::endl;
std::cout<<"> date time is: "<<asctime(&date_time);
std::cout<<"> unix time is: "<<unix_time<<std::endl;
learn_struct_tm(date_time);
return 0;
}