如何将日期添加到日期时间字符串?

时间:2017-03-25 06:24:32

标签: c datetime

我想在日期时间字符串int main() { returnA(); } 中添加N天。我试图通过分别提取年,月,日字段来做到这一点,但它不起作用。

s

1 个答案:

答案 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_mdaytm_mon已经过调整。

2017-04-01