显示日期提前90天形成CURRENT(ANSI C)

时间:2014-05-20 10:39:32

标签: c mfc ansi

是否有一种简单的方法比现在提前90天计算?例如,如果今天是5月31日,那么90天前的日期是什么时候?有这样的功能吗?感谢

4 个答案:

答案 0 :(得分:4)

#include <stdio.h>
#include <string.h>
#include <time.h>

int main(void) {
  time_t t = time(0);                      // NOW
  struct tm tm[1];
  memmove(tm, localtime(&t), sizeof tm);   // convert to struct tm
  tm->tm_mday -= 90;                       // subtract 90 days
  time_t then2 = mktime(tm);               // convert to time_t and normalize
  printf("%s\n", ctime(&then2));
  return 0;
}

答案 1 :(得分:2)

可以使用COleDateTime (link)COleDateTimeSpan (link)类。

#include <atlcomtime.h>

COleDateTime dt = COleDateTime::GetCurrentTime();
COleDateTimeSpan span(90, 0, 0, 0);
COleDateTime dt2 = dt - span;

答案 2 :(得分:0)

不是单一的功能,没有。

但你可以很容易地做到这一点:

  • 使用time()获取当前时间。
  • 减去90天的秒数。
  • 使用localtime()转换为当地时间。
  • 如果需要,使用strftime()转换为字符串。

答案 3 :(得分:-2)

DateTime dt = DateTime.Now.AddDays(-90);

string edate = dt.ToString(“dd-MM-yyyy”);