c - 在 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;
}
推荐阅读
- reactjs - 带有 setInterval 的 setState 被触发 3 次
- python - pyformat 文档在哪里
- javascript - 为什么粘糊糊的效果不适用于画布粒子?
- c# - 是否有与 MS DOS BASIC 指令等价的数据、恢复和读取指令?
- flutter - 在后台应用程序时更新服务器中的位置
- php - Docker php 添加 Zip 扩展
- javascript - 在本机反应中使用过滤器时,图像源正在转换为整数
- python - 排序列表,以便编号最大的参数排在第一位
- ios - AVAudioRecorder 仅适用于 .record(forDuration:)
- typescript - 尝试更新或获取具有 OneToOne 关系的实体时出错