50 Commits

Author SHA1 Message Date
Howard Hinnant
88f3c85517 Add to_stream which avoids temporary streams and strings.
*  This is a low-level formatting facility which other functions
   such as format call into.
2016-11-25 20:37:35 -05:00
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
Howard Hinnant
d99e39f5d8 Default USE_SHELL_API to 1 2016-10-23 18:56:58 -04:00
Howard Hinnant
ae68278245 Add unary operators + and - to year 2016-10-19 12:01:51 -04:00
Howard Hinnant
769dc09f28 Minor polish 2016-10-16 23:13:36 -04:00
Howard Hinnant
41657bc50e Embellish issue 2. 2016-10-15 21:15:24 -04:00
Howard Hinnant
dd209e205e Add issues list to d0355r1 2016-10-15 21:02:01 -04:00
Howard Hinnant
5b2aa5f4be Lots of changes motivated by reviews 2016-10-15 17:32:14 -04:00
Howard Hinnant
b2b1d520c5 Make those time_point conversions which can be noexcept, noexcept 2016-10-12 19:48:07 -04:00
Howard Hinnant
2c16e09438 Replace CharT with charT and Traits with traits 2016-10-12 19:32:31 -04:00
Howard Hinnant
a7dd3132e0 Link R1 to Cppcon 2016 timezone presentation 2016-10-09 20:36:48 -04:00
Howard Hinnant
23ad937af0 Link to R0 2016-10-09 20:19:41 -04:00
Howard Hinnant
6133d1e636 Minor cleanups in the clocks 2016-10-09 20:13:02 -04:00
Howard Hinnant
176ffe7930 First commit of D0355R1 2016-10-09 20:12:32 -04:00
Howard Hinnant
026caba1c4 Remove static conversion functions from clocks
The free function converters are sufficient API.
2016-10-08 16:06:37 -04:00
Howard Hinnant
4aacc0b0b3 Add parse manipulators 2016-09-14 22:05:47 -04:00
Howard Hinnant
ddb826e490 format passes time_point by const& 2016-09-13 20:28:42 -04:00
Howard Hinnant
bcdf8acb8b Add trivial default constructors to most calendar types 2016-09-13 20:15:24 -04:00
Howard Hinnant
d7e38aa24f Add %F to parse 2016-09-09 21:07:05 -04:00
Howard Hinnant
47b51473c5 Move formatting and parsing
Moved formatting and parsing of sys_time and local_time from tz.h to
date.h in order to make this functionality available to a wider
audience.  Existing code does not need to change.  But future code
can #include "date.h" instead of "tz.h" and need not compile tz.cpp nor
link to curl.

Formatting zoned_time remains in tz.h.
2016-08-24 20:56:17 -04:00
schmidt9
e641f69667 iOS instructions added 2016-08-23 20:57:50 +03:00
Howard Hinnant
54a8b2dc19 Allow optional leading hours digit in offset when a colon is required. 2016-08-08 18:25:59 -04:00
Howard Hinnant
bddd8be2aa Document INSTALL, and reorganize Installation instructions. 2016-08-06 15:06:58 -04:00
Howard Hinnant
4e3a40a6dd Time something real. 2016-07-30 23:15:02 -04:00
Howard Hinnant
151d050391 Introduce chrono_io.h 2016-07-30 17:45:14 -04:00
Howard Hinnant
204a17cba8 Fix type-o. 2016-07-04 16:33:59 -04:00
Howard Hinnant
7de9902c60 Add Islamic calendar. 2016-07-04 16:32:31 -04:00
Howard Hinnant
48d61f2631 Add type diagrams. 2016-06-27 22:36:48 -04:00
Howard Hinnant
0fc9f3f879 Introduce julian.h 2016-06-26 18:49:51 -04:00
Howard Hinnant
d1f8e3ab7d Fix minor type-o 2016-06-17 20:39:52 -04:00
Howard Hinnant
9fb5e05eba HAS_REMOTE_API support for Windows. Adds support for MingW too.
* HAS_REMOTE_API still defaults to 0
* When HAS_REMOTE_API=0 only libraries advapi32.lib, ole32.lib and shell32.lib are required.
* Setting HAS_REMOTE_API=1 requires curl: https://curl.haxx.se/libcurl/
*- Also need to manually install 7-Zip (http://www.7-zip.org).
*- Will automatically install Tinyxml2 (http://www.grinninglizard.com/tinyxml2/).
*- Will automatically install http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml
2016-06-16 22:04:31 -04:00
Howard Hinnant
d3eb177cdc 'Update' copyright. 2016-06-09 22:28:52 -04:00
Howard Hinnant
49f4ef0a2c Add convenience converts among sys_time, utc_time, tai_time, and gps_time. 2016-06-08 20:49:03 -04:00
Howard Hinnant
58b08e0c74 Add tai_clock and gps_clock. 2016-06-07 22:47:42 -04:00
Howard Hinnant
1f5f4a0b62 Add streaming inserter for utc_time.
* Fix bug in utc_to_sys.
2016-06-06 21:06:25 -04:00
Howard Hinnant
c9c460f7b6 Create %Ez & %Oz to put ':' in offset for format and parse. 2016-06-01 23:25:22 -04:00
Howard Hinnant
0aeb2389ef Address review comments 2016-05-30 15:08:46 -04:00
Howard Hinnant
60bf737960 d0355r0 2016-05-29 18:36:44 -04:00
Howard Hinnant
b3b39b0ae6 Support wide streams 2016-05-29 00:15:20 -04:00
Howard Hinnant
1de4e4a150 Rename Leap to leap 2016-05-28 20:27:11 -04:00
Howard Hinnant
6102717e7f Rename Link to link 2016-05-28 20:21:17 -04:00
Howard Hinnant
c005648049 Fix type-o's 2016-05-28 14:10:30 -04:00
Howard Hinnant
6220fa83e4 Add more options to the parse functionality. 2016-05-22 12:28:26 -04:00
Howard Hinnant
52485c8403 Make construction from local_days explicit 2016-05-21 12:45:43 -04:00
Howard Hinnant
3758c23251 Continue bringing documentation up to date. 2016-05-21 10:15:58 -04:00
Howard Hinnant
89471a05c4 Continue bringing documentation up to date. 2016-05-15 22:48:52 -04:00
Howard Hinnant
da51856fae Create Reference 2016-05-08 23:01:27 -04:00
Howard Hinnant
e3387fc21d misc cleanup 2016-05-07 16:29:13 -04:00
Howard Hinnant
2f020e2654 Added local_time, and renamed day_point to sys_days 2016-05-07 16:05:21 -04:00
Howard Hinnant
105bd7df89 Initial commit 2016-05-04 20:43:02 -04:00