Linux C 获取系统日期格式 yyyymmdd



我想问一些问题1)我想使用linux c获取系统日期的字符串yyyymmdd,我应该怎么做?我想用这个字符串做一些算术,就像我有"20160317"我想做的 20160317 - 90 得到一个新的日期,请帮忙

2)

   int n;
   int m;
   n = (m%10 = 0)?(m/10):(m/10+1);

有没有更干净的方法可以做到这一点?比如如果m = 11 n会得到2,m = 10 n会得到1。

您可以使用 strptime(仅限 Linux)从字符串转换为时间结构。这将在传递给它的 tm 结构上设置时间。

然后,您可以使用 ctime 库。它将让您使用difftime这将使您获得两次之间的差异。

考虑 C 标准函数。

#include <time.h>
char datename[32];
struct tm* to;
time_t t;
t = time(NULL);
to = localtime(&t);
strftime(datename, sizeof(datename), "%Y%m%d", to);

如果你想要90天之前的日期。

t -= 90 * 24 * 3600;

最新更新