显示日期比 CURRENT (ANSI C) 早 90 天

问题描述 投票:0回答:4

有没有简单的方法可以计算出比现在早90天?例如,如果今天是 5 月 31 日,那么早 90 天的日期是几号?有这样做的功能吗?谢谢

c mfc ansi-c
4个回答
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;
}

2
投票

The

COleDateTime
(link) and
COleDateTimeSpan
(link) classes could be used.

#include <atlcomtime.h>

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

0
投票

不是单一功能,没有

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

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

-2
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.