问题描述
我有以下结构:
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;
}