恭喜,你发布的帖子
发布于 2025-03-03 09:45:26
3楼
用DeepSeek得到的答案:
struct tm dateAdd(const char interval, int number, struct tm baseDate) {
struct tm result = baseDate;
switch (interval) {
case 'y': result.tm_year += number; break;
case 'm': result.tm_mon += number; break;
case 'd': result.tm_mday += number; break;
case 'w': result.tm_mday += 7 * number; break;
case 'h': result.tm_hour += number; break;
case 'n': result.tm_min += number; break;
case 's': result.tm_sec += number; break;
default: // 处理错误
}
mktime(&result);
return result;
}
1、将基准日期转换为struct tm结构。
2、根据interval参数调整对应的字段:
'y':tm_year += number
'm':tm_mon += number
'd':tm_mday += number
'w':tm_mday += 7 * number
其他如小时、分钟、秒类似。
3、使用mktime()将struct tm转换为time_t,这会自动调整日期到有效范围。
4、将调整后的time_t转换回struct tm,得到最终的日期。注:struct tm在传递给mktime()时,可能需要先将其转换为本地时间(localtime())
请填写推广理由:
分享
只看
楼主