【问题标题】:Converting time_t to a DATE struct in c在 c 中将 time_t 转换为 DATE 结构
【发布时间】:2021-04-18 13:31:16
【问题描述】:

我有以下结构:

typedef struct Date {
   short day, month, year;
} DATE;

我想创建一个获取time_t 变量并将其转换为DATE 的函数,但我遇到了一些问题。 尝试了以下方法:

DATE timeTConverter(time_t date) 
{
    struct tm *giverTime;
    giverTime = localtime(date);
    DATE given;
    given.day = giverTime->tm_mday;
    given.month = giverTime->tm_mon++;
    given.year = giverTime->tm_year;

    return given;
}

但它似乎不起作用。 有什么想法吗?

【问题讨论】:

  • 节省时间,启用所有警告。

标签: c time-t


【解决方案1】:

localtime() 采用指针 time_t,而不是time_t 本身。

同样递增giverTime->tm_mon 也没有意义,因为没有使用结果。您似乎想指定 giverTime->tm_mon + 1

DATE timeTConverter(time_t date) 
{
    struct tm *giverTime;
    giverTime = localtime(&date); /* pass a pointer */
    DATE given;
    given.day = giverTime->tm_mday;
    given.month = giverTime->tm_mon+1; /* simply add instead of increment */
    given.year = giverTime->tm_year;

    return given;
}

【讨论】:

  • 可能还需要在tm_year值上加1900。
猜你喜欢
  • 2022-11-12
  • 2011-06-28
  • 1970-01-01
  • 2021-12-26
  • 2014-02-02
  • 1970-01-01
  • 2018-06-04
  • 2017-04-11
  • 1970-01-01
相关资源
最近更新 更多