localtime mktime 相关的问题!
根据需要我要求出某天零时自1970年一月一日的秒数 加上86399秒得到该天结束时秒数 我方法是先用time()求得秒数,然后转换为struct tm对象,之后我把对象的tm_hour tm_min tm_sec设置为0用mktime()函数计算该天零时从1970年一月一日的秒数 可我发现一个问题 这个秒数startTime为啥不是86400(一天的秒数)的整数倍呢?求解
- C/C++ code
time_t nowTime; struct tm * timeinfo; time ( &nowTime ); timeinfo = localtime ( &nowTime ); timeinfo->tm_hour=0; timeinfo->tm_min=0; timeinfo->tm_sec=0; time_t startTime=mktime(timeinfo); timeinfo->tm_hour=23; timeinfo->tm_min=59; timeinfo->tm_sec=59; time_t endTime=mktime(timeinfo);
[解决办法]
msdn
[解决办法]
理清楚思路,看中间计算有没有错误。
[解决办法]
我又看了一下你的代码。
原来你调time+localtime只是为了获得一个填写好的tm结构体,那你不必在乎我楼上说的,我运行后显示:
86399,没有什么问题。
[解决办法]
time()取得的是GMT,localtime是北京时间,你将结果减去8*3600就能整除了