Implemented clock_time_conversion<D, local_t> calling D::from_local and clock_time_conversion<locat_t, S> calling S::to_local. To avoid ambiguities addes: * clock_time_conversion<local_t, local_t> - idenitity * clock_time_conversion<local_t, utc_clock> - same as default (utc_clock::to_local) * clock_time_conversion<utc_clock, local_t> - same as default (utc_clock::from_local) In addition, as std::chrono::system_clock cannot be edited, added: * clock_time_conversion<local_t, std::chrono::system_clock> - assumes same epoch * clock_time_conversion<std::chrono::system_clock, local_t> - assumes same epoch They will be required to resolve amibiguity anyway.
Date
Summary
This is actually several separate C++11/C++14/C++17 libraries:
-
"date.h"is a header-only library which builds upon<chrono>. It adds some newdurationtypes, and newtime_pointtypes. It also adds "field" types such asyear_month_daywhich is a struct{year, month, day}. And it provides convenient means to convert between the "field" types and thetime_pointtypes. -
"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. -
"iso_week.h"is a header-only library built on top of the"date.h"library which implements the ISO week date calendar.- Documentation: http://howardhinnant.github.io/date/iso_week.html
-
"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.- Documentation: http://howardhinnant.github.io/date/julian.html
-
"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.- Documentation: http://howardhinnant.github.io/date/islamic.html
Standardization
Slightly modified versions of "date.h" and "tz.h" were voted into the C++20 working draft at the Jacksonville FL meeting on 2018-03-17:
Build & Test
You will need CMake and a recent C++ compiler. Here follows a guide of how to build and test using the CMake Makefile generator.
mkdir build
cd build
cmake ../
cmake --build . --target testit # Consider '-- -j4' for multithreading
Projects using this library
- www.safe.com
- www.webtoolkit.eu/wt
If you would like your project (or product) on this list, just let me know.