首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于时间函数,该怎么处理

2013-09-06 
关于时间函数time_t createTime mailInfo-getCreateTime()/1000tm* t localtime(&createTime)int h

关于时间函数
time_t createTime = mailInfo->getCreateTime()/1000;
tm* t = localtime(&createTime);
int hour_createTime = t->tm_hour;
int minute_createTime = t->tm_min;

不知道这段代码有什么问题,经常会使程序崩溃,这时
t 和createTime 显示的值 一个是全部都是1,另一个是第一个是1后跟着的都是0

求大侠帮助,万分感谢!!!

没什么大问题,先确定能不能正确获取秒数的问题!
[解决办法]

引用:
Quote: 引用:

估计是 time_t createTime = mailInfo->getCreateTime()/1000; 赋值溢出


溢出的话如何处理好点啊?

溢出时用最大值覆盖?
time_t createTime = (mailInfo->getCreateTime()/1000 > ((time_t)1<<(sizeof(time_t)-1)))?((time_t)1)<<(sizeof(time_t)-1):mailInfo->getCreateTime()/1000;

[解决办法]
溢出了就判断localtime的返回值是不是NULL就可以了
Return a pointer to the structure result, or NULL if the date passed to the function is:

Before midnight, January 1, 1970.

After 03:14:07, January 19, 2038, UTC (using _time32 and time32_t).

After 23:59:59, December 31, 3000, UTC (using _time64 and __time64_t).

热点排行