C++进行年月日小时之间的比较函数
时间: 2024-02-10 19:11:00 浏览: 18
你可以使用标准库中的 `std::chrono::system_clock` 类来获取当前时间,并使用 `std::chrono::time_point` 类型来表示时间点。以下是一个示例代码,可以比较两个时间点之间的时间差:
```c++
#include <chrono>
// 比较两个时间点之间的时间差(单位:秒)
double diffInSeconds(std::chrono::time_point<std::chrono::system_clock> t1,
std::chrono::time_point<std::chrono::system_clock> t2)
{
std::chrono::duration<double> diff = t2 - t1;
return diff.count();
}
int main()
{
// 获取当前时间
std::chrono::time_point<std::chrono::system_clock> now = std::chrono::system_clock::now();
// 创建一个时间点
std::chrono::time_point<std::chrono::system_clock> t1;
// 设置时间点为 2022 年 3 月 1 日 12 点 0 分 0 秒
t1 = std::chrono::system_clock::from_time_t(std::mktime(std::tm{0, 0, 12, 1, 2, 122}));
// 创建另一个时间点
std::chrono::time_point<std::chrono::system_clock> t2;
// 设置时间点为 2022 年 4 月 1 日 12 点 0 分 0 秒
t2 = std::chrono::system_clock::from_time_t(std::mktime(std::tm{0, 0, 12, 1, 3, 122}));
// 比较两个时间点之间的时间差
double diff = diffInSeconds(t1, t2);
std::cout << "时间差为:" << diff << " 秒" << std::endl;
return 0;
}
```
需要注意的是,`std::chrono::system_clock` 类型表示的是系统的时钟,可能因为各种原因而不准确,例如受到时区、夏令时、NTP 同步等的影响。如果需要更高精度的时间测量,可以使用其他类型的时钟。