nowp:0x2d4300
ltp:0x2d4300
由于系统的localtime应该是这么实现的
struct tm *localtime( const time_t *time )
{
static struct tm _tm;
...
return &_tm;
}
在我们比较两个时间的时候,我们如果连续用这个函数,会让两个
now = localtime(&t);
lt = localtime(&timer);
一样,因为他们的地址是一样的
strftime
解决方法:我们可以每次得到返回值就用strftime,处理作为保存数据。然后比较strftime得到的字符串。
补充localtime的作用(看返回值就可以知道了):
struct tm *localtime(const time_t *timep);
struct tm {
int tm_sec; /* seconds */
int tm_min; /* minutes */
int tm_hour; /* hours */
int tm_mday; /* day of the month */
int tm_mon; /* month */
int tm_year; /* year */
int tm_wday; /* day of the week */
int tm_yday; /* day in the year */
int tm_isdst; /* daylight saving time */
};
阅读(445) | 评论(0) | 转发(0) |