gpt4 book ai didi

c++ - 不了解 tm_struct (C++) 计算 - 是否存在某种偏移量?

转载 作者:搜寻专家 更新时间:2023-10-31 00:12:16 27 4
gpt4 key购买 nike

<分区>

我不明白为什么 C++ 中的 tm 结构会有这种行为。让我更具体一点——如果我要获取当前时间,我可能会做这样的事情

time_t now = time(0);
tm *nowTm = gmtime(&now);

在打印出日期后,我希望得到类似 2015/06/13(本文的当前日期)

cout << nowTm->tm_year << "/" << nowTm->tm_mon << "/" << nowTm->tm_mday;

但是,相反,我发现它打印出 1150/5/13。对于月份值,我简单地加 1 以将其设置为正确的月份,但玩弄年份证明很麻烦。

我遇到了这个 SO 帖子:Algorithm to add or subtract days from a date? ,表示从年份中减去 1900 以获得正确的年份。我试过了,但没有用。

然后我尝试添加当前年份和 1150 之间的差异,2015 - 1150 = 865 以获得正确的年份,但它给了我 9800 而不是 2015

然后我尝试添加年份,发现

  1. 如果我对年份 +1,它会以 10 年为增量增加。
  2. 如果我 +0.1 到年份,它会将日期除以零并加上 0.1(例如 1150 + 1 = 115.01)。

我很困惑 - 为什么会发生这种情况以及如何在我的 tm 结构中获得正确的年份?

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com