繁体   English   中英

在struct tm中操纵tm_mon?

[英]Manipulating tm_mon in struct tm?

我在理解该程序时遇到了麻烦,即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;
}

感谢任何帮助,因为我对此感到有些困惑。

看看下表。 如您所见,tm_mon是从0 =一月到11 =十二月的值。

在此处输入图片说明

'*'tm_sec通常为0-59。 额外的范围是在某些系统中可以容纳leap秒。

编辑

那么如果您在2015年1月1日的情况下没有+1 ,则实际输出为

The date in 4,000,000 seconds will be 0/1/2015

+1会推动输出

The date in 4,000,000 seconds will be 1/1/2015

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM