Howard Hinnant 5eb10b747f Unify and simplify fractional decimal seconds formatting
* Many of the ideas and some of the code herein is credited to
  Adrian Colomitchi

* Decouple fractional decimal seconds formatting from time_of_day
  formatting so that it can be more easily used elsewhere in the
  future.

* Include super-second durations such as nanocenturies and
  microfortnights in the class of durations that will get formatted
  with fractional decimal seconds.

* If a duration is exactly representable with fractional decimal
  seconds not exceeding 18 decimal fractional digits, format it
  exactly.  Otherwise format it to 6 fractional decimal digits
  (microseconds precision).  The number 18 is chosen as this is the
  limit of std::ratio using 64 bits (i.e. atto).

* The above bullet implies that durations with ratio<1, 4> will now
  be formatted with 2 fractional decimal digits instead of 1.
  ratio<1, 8> will be formatted with 3, and ratio<1, 3> with 6.

* Unify the implementation into one C++11 implementation that works
  equally well with C++14.

* Drive-by fix a couple formatting bugs dealing with negative
  durations.

* Deprecate the make_time functions taking unsigned md by removing
  their documentation.  Also deprecate the corresponding time_of_day
  constructors taking unsigned md.

* This change paves the way for future formatting improvements.
2016-11-24 19:54:20 -05:00
2016-07-30 23:15:02 -04:00
2016-05-30 15:08:46 -04:00
2016-10-16 23:13:36 -04:00
2016-06-27 22:36:48 -04:00
2016-07-04 16:33:59 -04:00
2016-06-09 22:28:52 -04:00
2016-06-26 18:49:51 -04:00
2016-06-27 22:36:48 -04:00
2016-10-23 18:56:58 -04:00
Description
A date and time library based on the C++11/14/17 header
Languages
C++ 97.5%
CMake 1%
Objective-C++ 0.9%
Shell 0.5%
C 0.1%