簡體   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