Three classes are defined in the header file: daytime, date and datetime.
Daytime is derived from std::chrono::nanoseconds which is used to represent the time part of the day.
Date is derived from std::chrono::duration < int32_ t. std::ratio < 86400,1 >>, used to represent the date part.
Datetime is derived from std::chrono::time_ point<std::chrono::system_ clock, nanoseconds >, operator+ and operator- are overloaded, so datetime can perform operations with std::chrono::duration.