卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章76048本站已运行4318

C++ 时间和日期函数的精辟解析

c++++ 提供多种时间和日期函数,包括 time_t 和 tm 结构体,以及 std::time_t 和 std::tm 类型。这些函数允许获取当前时间、格式化时间、转换时间戳、计算时间差和操纵时间组件。通过使用这些函数,你可以编写应用程序来轻松管理和操作时间相关数据。

C++ 时间和日期函数的精辟解析

C++ 时间和日期函数的精辟解析

C++ 提供了丰富的函数库,用于处理时间和日期信息。了解这些函数的基本知识对于编写管理和操作时间相关数据的程序至关重要。

时间结构和类

立即学习“C++免费学习笔记(深入)”;

  • time_t:表示自纪元(通常为 1970 年 1 月 1 日格林威治标准时间午夜)以来的秒数。
  • tm:一个结构体,包含时间组件(如年、月、日、时、分和秒)。
  • std::time_t:C++11 引入的类型,本质上与 time_t 相同。
  • std::tm:C++11 引入的类型,本质上与 tm 相同。

相关函数

1. 取回当前时间

time_t current_time = time(nullptr);
std::tm* time_info = localtime(&current_time);

2. 格式化输出时间

char buffer[80];
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", time_info);
std::cout << buffer << std::endl;

3. 转换时间戳

time_t timestamp = 1664262736;
std::tm* time_info = gmtime(&timestamp);

4. 计算时间差

time_t start_time = time(nullptr);
// ...执行耗时的操作...
time_t end_time = time(nullptr);
std::cout << "Elapsed time: " << end_time - start_time << " seconds" << std::endl;

5. 操纵时间组件

std::tm tomorrow = *time_info;
tomorrow.tm_mday += 1;  // 将日期增加一天

实战案例:简单的倒计时程序

#include <iostream>
#include <chrono>

int main() {
  // 获取当前时间并设定倒计时天数
  auto start = std::chrono::system_clock::now();
  int days = 10;

  // 生成结束时间
  auto end = start + std::chrono::days(days);

  // 持续显示倒计时
  while (start < end) {
    // 计算剩余天数
    auto remaining = std::chrono::duration_cast<std::chrono::days>(end - start);

    // 格式化输出并清屏
    std::cout << "rRemaining days: " << remaining.count() << std::flush;
    std::cout.flush();

    // 每秒更新时间
    std::this_thread::sleep_for(std::chrono::seconds(1));
    start = std::chrono::system_clock::now();
  }

  std::cout << std::endl << "Countdown complete!" << std::endl;
  return 0;
}

通过掌握 C++ 的时间和日期函数,你可以轻松编写应用程序来管理、操作和显示时间相关数据。

卓越飞翔博客
上一篇: C++ 标准模板库的错误处理和异常机制
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏