我想在日期时间字符串int main() {
returnA();
}
中添加N天。我试图通过分别提取年,月,日字段来做到这一点,但它不起作用。
s
答案 0 :(得分:0)
将N
天添加到tm_mday
成员,然后使用mktime()
进行标准化。
直接字符串编辑@kaylum是不切实际的。
time_t mktime(struct tm *timeptr);
返回time_t
转化*timeptr
,但下面会忽略该值。副作用是该功能将成员调整到所需的通常主要范围。
#include<stdio.h>
#include<time.h>
// next week
#define N 7
int main() {
time_t t = time(NULL);
struct tm *tm = localtime(&t);
tm->tm_mday += N;
mktime(tm);
char s[64];
strftime(s, sizeof(s), "%Y-%m-%d", tm);
printf("%s\n", s); //prints the date
}
3月25日输出。注意tm_mday
和tm_mon
已经过调整。
2017-04-01