我很难理解这个程序,即tm_mon +1部分。
我对C很陌生,我通常都会为我所关注的课程设置的任何挑战编写自己的小程序,但我不得不与其他人协商解决这个问题的方法(它是教材和他们的代码的混合体,而不是我的),我不明白为什么+1会添加到tm_mon中。我理解tm_mon = January,但我不清楚+1是如何产生不同的,为什么它是+1而不是+2或任何其他数字!
这个程序旨在告诉你400万秒内的日期。
include <stdio.h>
#include <time.h>
int main(int argc, const char * argv[])
{
long secondsToFuture = time(NULL) + 4000000;
struct tm futureTime;
localtime_r(&secondsToFuture, &futureTime);
printf("The date in 4,000,000 seconds will be %d-%d-%d\n", futureTime.tm_mon + 1, futureTime.tm_mday, futureTime.tm_year + 1900);
return 0;
}感谢你的帮助,因为我有点困在这上面了。
发布于 2015-02-03 13:50:35
请看下表。如您所见,tm_mon是从0=january到11=december的一个值。

'*‘tm_sec一般为0-59。额外的范围是为了适应某些系统中的闰秒。
编辑
那么在您的例子中,没有+1,如果日期为1/1/2015,实际输出将是
The date in 4,000,000 seconds will be 0/1/2015具有+1的将推进输出
The date in 4,000,000 seconds will be 1/1/2015https://stackoverflow.com/questions/28300427
复制相似问题