Boost.DateTime日期时间的操作

Boost.DateTime库提供1400年后Gregorian日历日期的处理,包括时间点、时间段、时间窗口等概念。本文介绍了如何计算日期,如获取今天日期、今年感恩节日期,以及如何计算到感恩节的剩余天数。
摘要由CSDN通过智能技术生成

Boost.DateTime库提供了时间日期相关的计算、格式化、转换、输入输出等等功能,为C++的编程提供了便利。不过它有如下特点:

1. Boost.DateTime 只支持1400年以后的任何Gregorian日历日期。如果你需要计算再早的日期,则需要寻求其他库来支持。

日期和时间是编程过程中常用的操作。在C标准库中,<time.h>提供了time_t类型、和tm结构类型的时间日期相关函数。Windows API也提供了FILETIME类型的相关函数。由于这里是介绍boost,就不比较这几种之间的优劣了,感兴趣的朋友可以深究一下,相信你会根据自己的需要进行选择。那么,下面我将根据不同情形大概介绍一下Boost.DateTime中的主要功能。如果你需要严格的时间精度计算,请参看Boost.DateTime稳定度和精度的讨论

*基本概念:

时间点(Time Point)- 某一个时间,例如上午11点钟。

时间段(Time Duration)- 一段时间,不特指起止时间,例如1小时。

时间窗口(Time Interval、Time Period)- 一段时间,从某个时间点到另一时间点,例如下午2点到3点。

时间系统(Time System)- 特定的时间表示、计算规则的体系。

日历系统(Calendar System)- 以一天为基础的时间系统。Gregorian Calender是一个标准的日历系统。

UTC时间(Coordinated Universal Time),支持闰秒的标准时间系统。类似的有格林威治时间GMT。

DST时间(Daylight Savings Time - 夏令时冬令时)很多国家地区在夏天会调整本地时间。

时区(Time Zone) - 使用特定DST规则和与标准时之间时间偏差规则的地区或国家。

Epoch - 日期系统和时钟系统的起点。不同的时间系统起点不一样,通常UTC起点为1970年1月1号0点。

TAI Time - 高精度的时间系统,使用原子时,这个太深奥了,没有具体研究过。

注:下列关于Boost.DateTime输入输出的操作,请参看另一篇介绍:Boost.DateTime的IO操作。

头文件:

#include <boost/date_time/posix_time/posix_time.hpp>

例1. 日期计算:打印今天日期;今年感恩节(11月的第4个星期四)的日期;如果还没有到今年感恩节,打印今天到感恩节还有多少天。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值