问题
I read bMonth from user;
time_t timestamp = time(NULL);
tm* birthday = localtime(×tamp);
birthday->tm_mon = bMonth-1;
// now the tm_mon is set corectly
time_t birthStamp = mktime(birthday);
// now the tm_mon is 0
Why mktime changes the values?
回答1:
mktime
A call to this function automatically adjusts the values of the members of timeptr if they are off-range or -in the case of tm_wday and tm_yday- if they have values that do not match the date described by the other members.
来源:https://stackoverflow.com/questions/19375113/c-mktime-changes-value-of-my-tm-struct