微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 c 中将 time_t 转换为 DATE 结构

如何解决在 c 中将 time_t 转换为 DATE 结构

我有以下结构:

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;
}

但是好像不行。 有什么想法吗?

解决方法

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;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。