【问题标题】:How to create arbitrary date and add days to it - c++如何创建任意日期并为其添加天数 - C++
【发布时间】:2014-01-29 02:41:48
【问题描述】:

我正在尝试为作业编写应用程序,但我是 C++ 新手。应用程序的一小部分需要我存储一个日期并添加任意天数作为日期的偏移量。我知道如何使用 Java 或 C# 完成此任务,但我一直无法为 c++ 找到任何东西。我的教授提到了 ctime,但经过多次搜索,我发现的所有示例都与当前系统时间有关。如何创建 ctime::tm 结构并将其设置为任意日期?是否可以使用 ctime 添加天数以获得另一个日期?例如,如果我将 40 天添加到 2001 年 1 月 1 日,我会期望 2001 年 2 月 10 日而不是 2001 年 1 月 41 日。

【问题讨论】:

    标签: c++ date stl ctime


    【解决方案1】:

    作为使用示例

    #include <stdio.h>
    #include <time.h>
    
    int main ()
    {
      time_t currentTime;
      time(&currentTime);  
      struct tm * tmDate;
      int day, month,  year;
    
      tmDate = localtime (&currentTime);
      tmDate->tm_year = 99;
      tmDate->tm_mon = 11;
      tmDate->tm_mday = 10;
    
      mktime ( tmDate );
    
    printf("now: %d-%d-%d %d:%d:%d\n", tmDate->tm_year + 1900, tmDate->tm_mon + 1, tmDate->tm_mday, tmDate->tm_hour, tmDate->tm_min, tmDate->tm_sec);
    
      return 0;
    }
    

    如你所见

      tmDate->tm_year = 99;
      tmDate->tm_mon = 11;
      tmDate->tm_mday = 10;
    

    您可以设置、子、添加月、年、日.. 到日期。

    例如,您可以简单地添加 1 个月至今

      tmDate->tm_mon++;
    

    【讨论】:

    • 完美运行!谢谢。
    猜你喜欢
    • 2020-10-25
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多