21xrx.com
2024-12-22 23:43:02 Sunday
登录
文章检索 我的文章 写文章
C++如何输出日期
2023-07-01 14:08:05 深夜i     --     --
C++ 输出 日期

在 C++ 编程语言中,输出日期这个问题其实很简单。C++ 中提供了一个标准库函数用于日期输出,这个函数叫做 strftime()。

使用 strftime() 函数的前提是需要先定义好要输出的日期和时间,具体来说就是定义一个 tm 结构体。 tm 结构体包含了年、月、日、时、分、秒等信息,可以通过系统提供的函数 localtime() 或 gmtime() 来获取当前系统时间并转化为 tm 结构体。

下面是一个输出当前系统时间的 C++ 代码片段:


#include <iostream>

#include <ctime>

using namespace std;

int main()

{

  // 获取当前系统时间

  time_t now = time(0); 

 

  // 将当前系统时间转化为可读的字符串形式

  char* dt = ctime(&now);

  // 输出当前系统时间

  cout << "当前系统时间是:" << dt << endl;

  return 0;

}

上面这段代码中,我们首先调用了 time() 函数来获取当前系统时间,然后将其转换成可读的字符串形式,最后使用 cout 输出到标准输出流中。运行结果如下:


当前系统时间是:Sun Aug 8 14:45:30 2021

但是,这种输出形式并不是特别友好。如果想要将日期和时间分别输出,我们可以使用 strftime() 函数。下面是一个实例,输出当前系统日期:


#include <iostream>

#include <ctime>

using namespace std;

int main()

{

  // 获取当前系统时间

  time_t now = time(0);

  // 将当前系统时间转换为 tm 结构体形式

  tm* ltm = localtime(&now);

  // 定义日期输出格式

  char buffer[80];

  strftime(buffer, 80, "%Y-%m-%d", ltm);

  // 输出当前系统日期

  cout << "当前系统日期是:" << buffer << endl;

  return 0;

}

使用 strftime() 函数需要指定输出格式。上面这个例子中,我们定义了日期输出格式为 %Y-%m-%d,其中 %Y 表示四位数的年份,%m 表示两位数的月份,%d 表示两位数的日子。由于日期格式是字符串,所以需要预先定义一个字符数组来存储输出结果。

如果想要输出当前系统时间,可以将 strftime() 函数的输出格式进行修改。例如:


#include <iostream>

#include <ctime>

using namespace std;

int main()

{

  // 获取当前系统时间

  time_t now = time(0);

  // 将当前系统时间转换为 tm 结构体形式

  tm* ltm = localtime(&now);

  // 定义时间输出格式

  char buffer[80];

  strftime(buffer, 80, "%H:%M:%S %p", ltm);

  // 输出当前系统时间

  cout << "当前系统时间是:" << buffer << endl;

  return 0;

}

在上面的代码中,我们将 strftime() 函数的输出格式修改为 %H:%M:%S %p。其中 %H 表示两位数的小时(24小时格式),%M 表示两位数的分钟,%S 表示两位数的秒钟,%p 表示上午或下午。运行结果如下:


当前系统时间是:17:29:45 下午

总之,C++ 中输出日期并不是很复杂,只需要使用结构体、时间函数和 strftime() 函数来完成即可。如果对 strftime() 函数的输出格式不熟悉,可以查阅相关资料,然后根据自己的需求进行定义。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复