This is actually several separate C++11/C++14 libraries:
-
"date.h"
is a header-only library which builds upon<chrono>
. It adds some newduration
types, and newtime_point
types. It also adds "field" types such asyear_month_day
which is a struct{year, month, day}
. And it provides convenient means to convert between the "field" types and thetime_point
types. See http://howardhinnant.github.io/date/date.html for more details.Here is the Cppcon 2015 presentation on date.h: https://www.youtube.com/watch?v=tzyGjOm8AKo
Here are the Cppcon 2015 slides on date.h: http://schd.ws/hosted_files/cppcon2015/43/hinnant_dates.pdf
-
"tz.h"
/"tz.cpp"
are a timezone library built on top of the"date.h"
library. This timezone library is a complete parser of the IANA timezone database. It provides for an easy way to access all of the data in this database, using the types from"date.h"
and<chrono>
. The IANA database also includes data on leap seconds, and this library provides utilities to compute with that information as well. See http://howardhinnant.github.io/date/tz.html for more details.Here is the Cppcon 2016 presentation on tz.h: https://www.youtube.com/watch?v=Vwd3pduVGKY
Here are the Cppcon 2016 slides on tz.h: http://schd.ws/hosted_files/cppcon2016/0f/Welcome%20To%20The%20Time%20Zone%20-%20Howard%20Hinnant%20-%20CppCon%202016.pdf
-
"iso_week.h"
is a header-only library built on top of the"date.h"
library which implements the ISO week date calendar. See http://howardhinnant.github.io/date/iso_week.html for more details. -
"julian.h"
is a header-only library built on top of the"date.h"
library which implements a proleptic Julian calendar which is fully interoperable with everything above. See http://howardhinnant.github.io/date/julian.html for more details. -
"islamic.h"
is a header-only library built on top of the"date.h"
library which implements a proleptic Islamic calendar which is fully interoperable with everything above. See http://howardhinnant.github.io/date/islamic.html for more details.
There has been a recent change in the library design. If you are trying to migrate from the previous design, rename day_point
to sys_days
everywhere, and that ought to bring the number of errors down to a small roar.
"date.h"
and "tz.h"
are now being proposed for standardization: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0355r2.html
Projects that use this project
If you would like to see your project listed here, and it isn't, please let me know. If your project is listed here and it shouldn't be, please let me know.