从mktime()返回的异常值

用户3053231

我准备以下结构:

struct tm tDepartureTime;
tDepartureTime.tm_min = 24;
tDepartureTime.tm_hour = 13;
tDepartureTime.tm_mday = 11;
tDepartureTime.tm_mon = 2 - 1;
tDepartureTime.tm_year = 2017 - 1900;

然后我使用mktime()来获取秒数。

unsigned long qTime = mktime( &tDepartureTime );

但会传回编号1731157832,相当于09.11.2024的时间戳。哪里可能有问题?

巴特·范·尼罗普

tm结构的某些字段尚未初始化。具体地,这些是tm_sectm_mdaytm_wdaytm_ydaytm_isdst

其中,您至少需要手动设置tm_sec如果它的值随机地变得很高,那可以解释未来的时间。

您还可以通过将第一行更改为来用零初始化整个结构struct tm tDepartureTime = {0}这可能是最好的解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章