683 Commits

Author SHA1 Message Date
Howard Hinnant
c4dcd5eb78 More Oracle fixes. 2017-08-05 20:27:15 -04:00
Howard Hinnant
9c181a1440 Update tests for default constructible:
* weekday_indexed
* year_month_weekday
2017-08-05 16:31:18 -04:00
Howard Hinnant
e2a38e600c Set constexpr rules to C++11 for Oracle 12.6 and earlier 2017-08-05 16:06:20 -04:00
Howard Hinnant
4ae416f06a Add default constructor for weekday_indexed
* This enables the year_month_weekday default constructor.
2017-07-27 14:34:11 -04:00
Howard Hinnant
5726b70bb7 Turn off constexpr when using clang + VS-2013 std::lib 2017-07-24 08:26:37 -04:00
Howard Hinnant
e6b1e0fe58 Allow read_unsigned to read 0 digits
* Will allow reading "optional" integers.
2017-07-24 08:18:18 -04:00
schmidt9
170ebfd354 Another memory leaks fix 2017-07-22 12:00:52 -04:00
Paul Thompson
a5b77bb0fe add to copyright holder 2017-07-21 10:41:48 -04:00
Paul Thompson
5a53cb38a3 VS2013 doesn't accept exception specification for constructor default. Resolves #183 2017-07-21 10:41:48 -04:00
Paul Thompson
494fee4e1b User defined literals are not supported by VS2013, use explicit year constructor instead 2017-07-21 10:41:48 -04:00
Howard Hinnant
a034eeed23 Have parse of %p set failbit if unsuccessful. 2017-07-19 15:26:29 -04:00
Howard Hinnant
a1b19a2ed6 Silence some warnings. 2017-07-19 15:25:57 -04:00
schmidt9
496497d16e Fix memory leaks 2017-07-17 12:25:27 -04:00
Semir Puskarevic
a828109809 Suppress -Wunused-function warning 2017-07-13 09:49:38 -04:00
Howard Hinnant
2129b813c9 Add www.safe.com to list of projects using date 2017-07-10 20:42:29 -04:00
Howard Hinnant
c8d3cc14da Add zoned_time deduction guides 2017-07-06 20:49:53 -04:00
Howard Hinnant
893cf51fd8 Add test for zoned_time 2017-07-06 20:49:28 -04:00
Howard Hinnant
6067371127 Don't pass ill-formed strings to stold
* Avoid exceptions coming out of stold.
* from_stream should always set failbit instead of throw.
2017-07-06 11:54:55 -04:00
Howard Hinnant
0c8b1f5967 Put expand_path back in when INSTALL is defined 2017-07-05 10:30:23 -04:00
Howard Hinnant
16dd16e64e Silence warning on VS 2017-07-03 16:48:48 -04:00
Howard Hinnant
ea0158c779 Move get_program_folder closer to where it is used 2017-07-03 16:45:11 -04:00
Howard Hinnant
a0b8883763 Remove unused variables in load_timezone_mappings_from_xml_file 2017-07-03 16:43:01 -04:00
Howard Hinnant
156bdf8bc6 Remove #ifdef in time_of_day
* Workaround for MSVC no longer needed.
2017-07-03 16:41:09 -04:00
Howard Hinnant
2d1d8f2255 Put %Z back into default streaming for zoned_time
* It was removed by accident.
2017-07-01 23:00:34 -04:00
Howard Hinnant
e0c962a8ce Silence unused variable warnings 2017-07-01 20:37:14 -04:00
Roel Standaert
7cbc4d8013 Also ignore leap-seconds.list
The tzdata package on Ubuntu includes /usr/share/zoneinfo/leap-
seconds.list. This is not a TZif file, so it should be ignored.
2017-06-29 10:07:35 -04:00
Howard Hinnant
090b66beb8 Update README.md 2017-06-27 22:22:58 -04:00
Howard Hinnant
791de2d9fc Update README.md 2017-06-27 22:22:09 -04:00
Howard Hinnant
77a703afe2 Update to point to current standards proposal and R4 draft 2017-06-27 22:19:58 -04:00
Howard Hinnant
bee4f27d4a Correct problems with load_timezone_mappings_from_xml_file
*  Move outside of HAS_REMOTE_API.

*  Ignore non-empty lines full of white space.
2017-06-26 22:03:01 -04:00
Howard Hinnant
56cec17500 Add gratuitous zoned_time:: qualifier to operators
*  VS-2017 compatibility.
2017-06-26 21:33:34 -04:00
Howard Hinnant
d359399090 Give zoned_time a default constructor 2017-06-26 21:19:29 -04:00
Howard Hinnant
a003ad28fa Make wide string literals in to_stream v2.2 2017-06-17 13:18:40 -04:00
Howard Hinnant
012f2c6135 Make to_stream and from_stream return a stream reference 2017-06-17 13:11:39 -04:00
Howard Hinnant
edcd9bd9c1 define MISSING_LEAP_SECONDS 0 when !USE_OS_TZDB 2017-06-16 15:55:43 -04:00
Howard Hinnant
9f0d511be6 Put up draft of D0355R3 2017-06-16 13:26:40 -04:00
Howard Hinnant
ccd857ff6d Add Alloc parameter to basic_string in two places 2017-06-16 13:23:41 -04:00
Howard Hinnant
88890939d5 Add zone1970.tab to the list of files
that should be ignored by init_tzdb() under USE_OS_TZDB.
2017-06-14 20:48:19 -04:00
Howard Hinnant
1139c9b64f Allow zoned_time with coarser precision than seconds
*  This gives greater interoperability with the deduction for class
   templates language feature.

*  time_points output from zoned_time still have at least seconds
   precision.
2017-06-13 23:00:54 -04:00
Howard Hinnant
ec412a1de0 Set failbit instead of throw within to_stream
* This is for consistency with other std streaming operations.
2017-06-12 21:01:58 -04:00
Howard Hinnant
aa4dafcc46 Silence sign conversion warnings 2017-06-12 13:33:47 -04:00
Howard Hinnant
cc81c9ea50 Fix minor problems for g++:
* Add missing #include <string>

* Explicitly convert sys_days to sys_seconds in conditional operator
2017-06-12 09:44:41 -04:00
Howard Hinnant
a610f087c1 Add support for the zic-compiled OS-supplied time zone DB:
*  Avoids the need to download the IANA database.

*  Heavily based on contributions by Aaron Bishop.

*  Turn on with -DUSE_OS_TZDB, off by default.

*  Not supported on Windows.

*  Disables HAS_REMOTE_API.

*  get_tzdb().version only supported on Apple.  This string has
   the value "unknown" elsewhere.

*  Leap second support is missing on Apple, and may not be on your
   platform either (please report).  Leap second support is enabled,
   disabled with -DMISSING_LEAP_SECONDS.

   Without leap second support, utc_time, tai_time, and gps_time (and
   those clocks) are not available.

*  On Apple, time zone transitions are only supported in the range:

   1901-12-13 20:45:52 to 2038-01-19 03:14:07

*  On Linux, time zone transitions are only as far in the future as
   the OS-provided transitions go.  There is no support for POSIX-
   style transitions.
2017-06-04 21:04:53 -04:00
Howard Hinnant
5132385454 Remove obsolete LAZY_INIT flag. 2017-06-04 20:32:37 -04:00
Howard Hinnant
5c38ad84e8 Eliminate TIMEZONE_MAPPING by making it equivalent to _WIN32.
*  Clean up indenting and whitespace.
*  No functionality changes intended.
2017-06-04 20:32:37 -04:00
Howard Hinnant
8b743db4b6 Reorganize readme 2017-05-31 20:49:51 -04:00
Howard Hinnant
9c9ddeba37 Work around EDG 4.11 front end bug. 2017-05-21 13:41:31 -04:00
Howard Hinnant
0fb3921e5b Fail if you need a valid year and don't parse one. 2017-05-20 23:04:49 -04:00
Tullio Menga
83c8b4d522 changes for compatibility with Clang with Microsoft CodeGen (v140_clang_c2):
- added date:: namespace to flloor() and abs() calls
- added IUnknown forward declaration before including Windows headers to prevent issue with objbase.h
- minor changes
2017-05-08 10:04:20 -04:00
Howard Hinnant
f493bd67f2 Tweak white space parsing rules (again):
* White space matches zero or more white space characters.

  * %n matches one white space character.

  * %t matches zero or one white space characters.
2017-05-07 15:25:07 -04:00
Howard Hinnant
cf0481b9af Reset command, width and modified for %n and %t in from_stream. 2017-05-04 21:03:48 -04:00
Howard Hinnant
f57432d7b4 Don't skip white space by default in from_stream.
* Put a space at the beginning of your
  format string to recover this behavior.
2017-05-04 14:47:28 -04:00
Howard Hinnant
e8f0dca452 Fix type-o in to_stream duration overload. 2017-05-04 10:04:17 -04:00
Tomi Valkeinen
44f6dfc58e fix compile warning about unused get_download_gz_file()
get_download_gz_file() is not used when HAS_REMOTE_API=0, and causes:

warning: 'std::__cxx11::string date::get_download_gz_file(const string&)' defined but not used [-Wunused-function]

Wrap get_download_gz_file() inside #ifdef to remove the warning.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
2017-05-02 20:10:44 -04:00
Jaak Ristioja
ec7db09085 Use system_error instead of strerror_r:
* Addresses portability issues.
2017-05-02 20:10:44 -04:00
Howard Hinnant
cb83bc2501 Update README.md 2017-04-24 16:46:58 -04:00
Howard Hinnant
faec35eaf1 Update README.md 2017-04-23 12:49:22 -04:00
Howard Hinnant
20efec5b16 Update README.md 2017-04-23 12:48:06 -04:00
Howard Hinnant
b2dc8b1f6e Tweak getTimeZoneKeyName():
* for systems that return "Coordinated Universal Time".
 * return "UTC" instead.
2017-04-18 20:48:28 -04:00
Howard Hinnant
2f8997d3ed Make parse fail if fmt string is not completely consumed. 2017-04-18 12:02:21 -04:00
Howard Hinnant
c64d69b1e1 Avoid getting localized time zone names from Windows OS.
* Use GetDynamicTimeZoneInformation to get .TimeZoneKeyName
  https://msdn.microsoft.com/en-us/library/windows/desktop/ms724318(v=vs.85).aspx
  > Retrieves the current time zone and dynamic daylight saving time settings.
  https://msdn.microsoft.com/en-us/library/windows/desktop/ms724253(v=vs.85).aspx
  > The name of the time zone registry key on the local computer.

* This avoids the need to map from StandardName to TimeZoneKeyName.

* Using .DynamicDaylightTimeDisabled = true forces the OS to return a
  non-daylight saving time result.

* Use of wcstombs is preferred over wstring_convert as the latter is now
  deprecated in C++17 because the implementors could not interpret the
  specification.
2017-04-17 19:06:58 -04:00
gm
885910375f Fix pragma warnings. Displayed at least by MSVC. 2017-04-16 23:53:37 +12:00
Howard Hinnant
d15491103b Move chrono_io.h functionality into date.h. 2017-04-13 21:01:47 -04:00
Howard Hinnant
05db422ca9 Respect width and padding in "chrono_io.h" 2017-04-13 18:02:26 -04:00
Howard Hinnant
2c094f5559 Restrict parse of %Z to valid timezone names and abbrev. 2017-04-13 14:09:14 -04:00
Howard Hinnant
096bad2622 Parse should fail if fmt string is not consumed. 2017-04-13 12:45:28 -04:00
Howard Hinnant
fc3d4d97fe Silence unused variable 'leaps' warning 2017-04-13 12:44:21 -04:00
Howard Hinnant
4f27361378 Add range checking for the time-of-day fields during parse.
*  Also refactor the leap-second logic used in utc_time.
2017-04-07 18:52:09 -04:00
Jan Kratochvil
a4eef8e20c Fix gcc -O -D_FORTIFY_SOURCE. 2017-04-03 20:46:36 -04:00
Jan Kratochvil
1fd0806757 Fix -Wshadow for gcc and clang. 2017-04-03 20:46:36 -04:00
Howard Hinnant
3daf8c1ffe Minor tweaks. 2017-04-01 21:53:29 -04:00
Florian Dang
c4c2550b29 Ignore GCC warnings.
* 4.9 missing initializer warnings
* pedantic for __int128 case
* Wrap diagnostic push and pop in tz.cpp and date.h.
2017-04-01 12:36:54 -04:00
Howard Hinnant
f30450b4c5 Merge branch 'master' of github.com:HowardHinnant/date 2017-03-30 14:45:42 -04:00
Howard Hinnant
d29cd4e343 Fix formatting bug for utc_time. 2017-03-30 14:44:42 -04:00
Howard Hinnant
5afd241be6 Update README.md 2017-03-28 21:04:59 -04:00
Howard Hinnant
f044cb0583 Update README.md 2017-03-28 21:02:32 -04:00
Howard Hinnant
3495c513a1 Enable parse and format for more types:
* year
    * month
    * day
    * weekday
    * year_month
    * month_day
2017-03-25 17:46:17 -04:00
Howard Hinnant
3ab6510cab Update copyright to 2017 2017-03-21 21:52:51 -04:00
Howard Hinnant
5eff31acdd Update README.md 2017-03-21 10:41:05 -04:00
Florian Dang
5e86f2c5ba Create downloads folder when it does not exist yet. 2017-03-20 18:25:19 -04:00
Howard Hinnant
dbee0e7da4 Allow parsing %Ez to parse only 1 hour digit. 2017-03-17 20:18:06 -04:00
Howard Hinnant
d110f07f59 Clean up time_of_day tests.
* Don't assume int64_t is the rep in the predefined chrono durations.
2017-03-14 11:05:33 -04:00
Howard Hinnant
9e1120c676 Make time_of_day default constructor non-explicit.
Add zoned_time const char* overloaded constructor.
2017-03-12 15:18:53 -04:00
gaspardpetit
f4292e6aca Added Alloc argument to template parameters to support custom allocators in from_stream 2017-03-11 20:13:06 -05:00
Gaspard Petit
a811a20748 Fixes minor typos in comments - no actual change to code 2017-03-08 11:28:35 -05:00
Howard Hinnant
3df43424ac Add from_stream 2017-03-02 13:16:22 -10:00
Howard Hinnant
1e7e7a214d Simplify the implementation of format and parse:
* For format, all a type must do is implement to_stream.

* For parse, each type X must specialize parse_manip<X,CharT,Traits>.
  Each specialization must include a public typedef to itself named
  type.

* Each parse_manip specialization must have a stream extraction
  operator.

* This commit depends on expression-SFINAE.  If this commit breaks
  your build, it is likely that your compiler/version does not
  support expression-SFINAE.  To fix this NO_EXPRESSION_SFINAE
  needs to be defined in the configuration area of date.h for
  that compiler/version.
2017-02-26 14:10:10 -05:00
Howard Hinnant
ffc8cd0a3b Add format and parse to tai_time, gps_time, year_month_day 2017-02-26 09:28:15 -05:00
Howard Hinnant
e9d36c6200 Rewrite format and parse in terms of detail::fields<Duration>
* Add format and parse to utc_time<Duration>.
* Added more tests.
2017-02-25 20:44:59 -05:00
Howard Hinnant
3233cbaf9a Update link to latest proposal 2017-02-13 13:00:12 -05:00
Jiangang (Jeff) Zhuang
3e906a2409 Remove a leftover output to std::cout 2017-02-13 12:17:11 -05:00
Howard Hinnant
c7f2995d0b Remove outdated warning about the version change. 2017-02-11 11:04:14 -05:00
Howard Hinnant
0d6de15043 Work around {} bug for older compilers
* iso_week.h
2017-02-08 14:44:37 -05:00
Howard Hinnant
5c09ae73f2 Work around {} bug for older compilers 2017-02-08 11:32:33 -05:00
Howard Hinnant
098223cf6d Second try at silencing "unused" warning for strerror_r 2017-02-07 17:31:14 -05:00
Howard Hinnant
6a31edcb38 Silence "unused" warning for strerror_r 2017-02-06 10:18:40 -05:00
Howard Hinnant
800ae143aa Correct the return type on two format overloads 2017-02-06 10:18:08 -05:00
Nicolas Veloz Savino
c1034550d2 Exclude expand_path when INSTALL is not defined 2017-01-30 18:02:06 -05:00
Howard Hinnant
3a9880999d Add format and parse overloads for durations 2017-01-28 16:21:21 -05:00
Howard Hinnant
ce67ee0997 Add License file 2017-01-26 19:42:42 -05:00