【问题标题】:Get/Set Date and Time in C++在 C++ 中获取/设置日期和时间
【发布时间】:2014-02-25 13:16:38
【问题描述】:

对于 uni 的一个项目,我正在做家庭自动化,我需要能够获取日期和时间以及设置它们,我需要这个来自动激活某些功能,目前在搜索我拥有的网络之后这些用于设置日期和时间

日期:

char date[9];
_strdate(date);
std::cout << date << std::endl;

时间:

time_t timer;
    struct tm y2k;
    double seconds;

    y2k.tm_hour = 0;   y2k.tm_min = 0; y2k.tm_sec = 0;
    y2k.tm_year = 100; y2k.tm_mon = 0; y2k.tm_mday = 1;

    time(&timer);  /* get current time; same as: timer = time(NULL)  */

    seconds = difftime(timer,mktime(&y2k));

    std::cout<<" seconds since January 1, 2000 in the current timezone" << seconds << std::endl;

我想知道的是有没有更好的方法来做这两个,还有我如何设置日期和时间?

【问题讨论】:

    标签: c++ date time


    【解决方案1】:

    如果您希望您的日期/时间代码是可移植的,您可能需要考虑像 Boost date/time 库这样的库。

    这还将使您能够进行计算和处理时间间隔等,并且您可以专注于编写自己的代码,而不是自定义日期时间方法和类的库。

    http://www.boost.org/doc/libs/1_55_0/doc/html/date_time/examples/general_usage_examples.html有一些人为的例子

    【讨论】:

      【解决方案2】:

      与其声明一个结构,不如声明一个类。这样,您可以在其中声明所有数据点,并使用 getter 和 setter 函数来修改和打印它们。像这样写:

      class y2k
      {
          // Private variables
          int tm_hour;
          int tm_year;
          int tm_min;
          int tm_mon;
          int tm_sec;
          int tm_mday;
      public:
          // Getters
          int getHour() {return tm_hour;}
          int getYear() {return tm_year;}
          int getMin() {return tm_min;}
          int getMon() {return tm_mon;}
          int getSec() {return tm_sec;}
          int getMDay() {return tm_mday;}
      
          // Setters
          void setHour(int hour) {hour = tm_hour;}
          void setYear(int year) {year = tm_year;}
          void setMin(int min) {min = tm_min;}
          void setMon(int mon) {mon = tm_mon;}
          void setSec(int sec) {sec = tm_sec;}
          void setMDay(int mday) {mday = tm_mday;}
      };
      

      如果您选择将值打印到屏幕上,请使用 getter,如果您想设置数据,请使用 setter。例如,如果您声明了y2k foo,那么您可以像这样设置年份:foo.setYear(100)

      【讨论】:

      • 现在我看到它在我面前看起来很简单,干杯人:)
      • 私有变量的数据类型怎么样,都是无效的?
      • @Tomsta 我应该第一次在我的答案中写出来,但它们都是整数。
      • 谢谢,只需要弄清楚如何将它集成到我的系统中,我想我已经将它设置为子类
      猜你喜欢
      • 2012-03-03
      • 2011-12-13
      • 1970-01-01
      • 2020-02-09
      • 2021-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多