712 Commits

Author SHA1 Message Date
Howard Hinnant
e23c15bb36 Add string_view overloads to parse functions 2021-05-19 14:13:33 -04:00
Howard Hinnant
052eebaf00 When comparing sys_info in test...
only compare whether the saves are equal to 0
and not their actual values.

This allows one to compare against the binary database
which does not contain actual values of save.
2021-05-18 16:17:37 -04:00
Howard Hinnant
b49a7575eb Zero initialize local_info in get_info
* Even when the result is unique, the second sys_info
  should be zero initialized.
2021-05-18 16:15:31 -04:00
Anthony Louis
6e921e1b1d Add tests for %I and %p format options v3.0.1 2021-04-16 21:26:33 -04:00
Anthony Louis
39b4edf279
Add flags in README to compile using cmake (#661) 2021-04-16 21:06:08 -04:00
Howard Hinnant
2ef74cb41a If %I is used without %p, mark the ambiguity with failbit 2021-04-16 15:15:45 -04:00
Howard Hinnant
ac6ca2a095 Add is_clock_v 2021-04-15 11:41:20 -04:00
Howard Hinnant
ae017078c9 Fix Posix::time_zone for southern hemisphere
* The get_info functions were not prepared for the case where the start
  and end times of a rule are chronologically reversed for a year.  I.e.
  the daylight saving start comes later in the year than the daylight
  saving end.  When save is positive, this happens in the southern
  hemisphere (e.g. "Australia/Sydney" -> "AEST-10AEDT,M10.1.0,M4.1.0/3").
  It also happens in the nothern hemisphere when the save is negative
  (e.g. "Europe/Dublin" -> "IST-1GMT0,M10.5.0,M3.5.0/1").

* Added tests for Posix::time_zone.
2021-04-09 11:08:12 -04:00
Howard Hinnant
156e0a786e Fix up namespace error in Posix::time_zone::to_sys 2021-04-07 20:33:01 -04:00
Howard Hinnant
9a9a42db74 Enable streaming output operator for floating-point-based time_points 2021-04-06 17:22:22 -04:00
Howard Hinnant
b5b765f928 Clean up calendrical streaming operators for invalid values 2021-03-31 16:15:53 -04:00
Howard Hinnant
77bd6b92a4 Rattle github.io's cage 2021-03-22 14:59:59 -04:00
Howard Hinnant
654b97091f Change default on C++17 to uncaught_exceptions
* By popular demand.
* If you need to undo this change, compile with
  -DHAS_UNCAUGHT_EXCEPTIONS=0.
2021-03-21 22:41:22 -04:00
Howard Hinnant
b899774303 Run curl_global_cleanup only once per application 2021-03-11 19:58:34 -05:00
Howard Hinnant
0e08b942c8 Correct the streaming output of year_month_day
* Invalid dates were printing out "invalid"
  too many times.
2021-03-11 19:50:14 -05:00
satishbhat-umd
811be52e1c
Add global cleanup to curl object destructor (#652)
Co-authored-by: Satish Bhat <sbhat@belvederetrading.com>
2021-03-01 17:00:11 -05:00
Davis Vaughan
1c285d6545
Cast to unsigned char before calling toupper() (#648) 2021-02-24 12:49:46 -05:00
Howard Hinnant
bf79dd5a81
Update README.md 2021-01-11 20:05:18 -05:00
Howard Hinnant
26fc2bd372 Fix read_long_double with respect to decimal_point:
*  Respect locale settings when ONLY_C_LOCALE=0
*  Do not respect locale settings when ONLY_C_LOCALE=1
Fixes #637
2021-01-05 21:14:41 -05:00
Howard Hinnant
97246a638a Silence lossy conversion warning
Fixes #620
2020-11-10 08:41:30 -05:00
LarsGullik
432bab81f9
Skip "version" file and USE_OS_TZDB to return "unknown" if no version found (#616)
In commit commit 0b72599bd43f72d8935e507e25e4f0063f9bb34e there
was a change to read "version" in addition to "+VERSION", so that
file shold also be ignored when scanning/reading zonefiles.

Also before the above mentioed commit get_version() would return
"unknown" if not on __APPLE__ and the version file was not found.
Put back that behaviour, for all USE_OS_TZDB users.

This last change changes the behaviour for __APPLE__ from throwing
an exception to returning "unknown".

Co-authored-by: Lars Gullik Bjønnes <lbjonnes@cisco.com>
2020-10-27 10:08:30 -04:00
Howard Hinnant
215cacff56 Change all uses of round to detail::round_i
Fixes #613

detail::round_i is the same as round when the To::rep
is integral, and is just an implicit conversion when
To::rep is floating point.
2020-10-25 20:16:07 -04:00
theirix
3cbfa4318f
Put back handling DISABLE_STRING_VIEW (#609)
* Put back handling DISABLE_STRING_VIEW
* Add HAS_DEDUCTION_GUIDES to interface library target
2020-10-08 19:22:15 -04:00
Evgen Bodunov
115dd428cf
Proposed fix for issue #161
Header include should follow the same preprocessor rules as function definition.
2020-10-08 11:47:09 +03:00
Howard Hinnant
7848566815 Fix a parse error for Visual Studio 2020-10-02 12:53:16 -04:00
Howard Hinnant
393b52f21b
Update README.md 2020-09-19 10:15:51 -04:00
Howard Hinnant
0b72599bd4 For USE_OS_TZDB, look for version number in the files
version and +VERSION
2020-09-11 16:00:18 -04:00
Howard Hinnant
ba99134b8a For USE_OS_TZDB, look for leap seconds in the files
leapseconds and leap-seconds.list
2020-09-11 15:53:07 -04:00
Howard Hinnant
5e18488899 Fix subtle bug in fractional_width 2020-09-05 16:34:04 -04:00
Michael Ellery
313189b0a8
Correct lingering references to bare "tz" libname: (#600)
Fixes: #599
2020-08-25 16:57:00 -04:00
Andre Nguyen
057b441ceb Use LLONG_MAX instead of std::numeric_limits<long long>::max() when constexpr is absent 2020-08-21 17:09:51 -04:00
Andre Nguyen
d7a0bf1fa7 replace noexcept with NOEXCEPT macro 2020-08-21 17:09:51 -04:00
Andre Nguyen
8140d979cd fix brace value initialization for msvc 18 2020-08-21 17:09:51 -04:00
Andre Nguyen
7990eae740 fix user defined literals for compatibility with msvc 18 2020-08-21 17:09:47 -04:00
Howard Hinnant
1ec2ea0295 Add test/tz_test/tzdb_list.pass.cpp 2020-08-17 21:34:20 -04:00
Howard Hinnant
658a3b9495 Fix crasher for early local times and USE_OS_TZDB=1 2020-08-17 21:34:20 -04:00
dkhalanskyjb
e7969c32e8
Add Kotlin's datetime library to the list of projects using this (#593) 2020-08-14 09:53:14 -04:00
Howard Hinnant
569b2d6785 Improve error message while parsing posix timezone string 2020-08-02 10:56:37 -04:00
Howard Hinnant
abe3ada04f
Update README.md 2020-07-28 17:00:00 -04:00
Nico Schlömer
9537addfc4
fix ONLY_C_LOCALE export from cmake (#590)
* fix ONLY_C_LOCALE export from cmake

* add some comments

* remove all generator expressions for target output

* cmake: fewer variables, make it easier to read
2020-07-22 19:03:42 -04:00
Howard Hinnant
6952fb50a6 Correct the value for not_a_year 2020-07-08 14:20:31 -04:00
Howard Hinnant
fe2f9c7eac Change constexpr to CONSTDATA 2020-07-07 15:01:45 -04:00
Michael Ellery
a6243ce56f
set cmake proj ver to 3.0: (#584)
FIXES: #583
2020-06-22 11:48:09 -04:00
Howard Hinnant
a55f1a103b
Update README.md 2020-06-15 15:18:20 -04:00
Howard Hinnant
d544e5af25 Throw exception if zoned_time is constructed with nullptr 2020-06-14 19:30:23 -04:00
Howard Hinnant
cac99da8dc For traits in constexpr context use ::value
* Fixes #542
v3.0.0
2020-06-02 21:08:57 -04:00
Howard Hinnant
a088baf9a5
Update README.md 2020-05-26 11:47:28 -04:00
Mike Ellery
e6adff6754 [cmake] Rename tz library to date-tz:
Fixes: #426
2020-05-24 21:31:18 -04:00
Joshua Jackson
d784766640 iOS Simulator support 2020-05-24 21:31:18 -04:00
Howard Hinnant
9343e31599 Give Posix::time_zone equality comparison 2020-05-24 21:31:18 -04:00
Howard Hinnant
f43c39fcf1 Add member function name() const to Posix::time_zone
* Returns the minimal string that uniquely identifies this
  time_zone.  That is, it takes advantage of all defaults.
2020-05-06 22:12:15 -04:00
Howard Hinnant
e12095f26f Revert change for floating point reps in decimal_format_seconds 2020-04-18 09:24:53 -04:00
Howard Hinnant
7d811743e0 Fix parse of second offset in posix time zone 2020-04-18 09:24:22 -04:00
Howard Hinnant
a2fdba1adc __GNUC_MINOR -> __GNUC_MINOR__
* Fixes #560
2020-03-30 12:50:37 -04:00
Howard Hinnant
4c1968b8f0 Fix constexpr overflow problems on gcc-7-9 2020-03-08 21:58:56 -04:00
Asad. Gharighi
9cc3a7bca1 Adding Persian/Jalali/Solar-Hijri calendar 2020-03-08 20:18:45 -04:00
Howard Hinnant
9a0ee25428 Do a runtime test for realpath vs readlink
* Ubuntu needs to use readlink under current_zone
  and most everyone else needs realpath.  Attempting
  to make everyone happy with this commit.
2020-01-25 10:05:26 -05:00
Robert Campion
c8d311f6f1 fixes #534 (#535) 2020-01-16 18:16:58 -05:00
Michael Ellery
fe63f0bb5f Add MANUAL_TZ_DB configure option: (#527)
* Add MANUAL_TZ_DB configure option:

FIXES: #458

* [fold] address review feedback
2020-01-15 22:08:15 -05:00
Nexus Web Development
9502bc27a3 Update Date.h (#529)
* Remove arithmetic overflow: 

Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Casting the value to the wider type before calling operator '-' to avoid overflow.
2020-01-11 15:24:10 -05:00
nanoric
66a5aa482e Add constexpr for clock_cast. 2020-01-11 14:44:06 -05:00
Anton Voloshin
b9cd9c3fde Fixed a typo in CMakeLists.txt: USE_AUTOLOAD => AUTO_DOWNLOAD (#523)
USE_AUTOLOAD wasn't used anywhere else in date's sources. AUTO_DOWNLOAD
is used in .cpp/.h files while never mentioned in CMakeLists.txt.
Must have been a typo.
2020-01-03 20:15:29 -05:00
Howard Hinnant
a184309786 Fix unwanted localization of integral grouping
* Fixes #525
2020-01-01 11:12:14 -05:00
Michael Ellery
fc4cf092f9 Fix cmake install for 3.14 or earlier (3.7 min) (#522)
* Fix cmake install for 3.14 or earlier (3.7 min)

Fixes: #504, #505

* Add find_dependency to config file

FIXES: #514
2019-12-29 14:51:04 -05:00
johnmph
48433b9892 Update date.h (#518)
using decltype in day constructor to be consistent with month and year
2019-12-05 14:00:16 -05:00
Nehal J Wani
4c95165298 Constrain make_zoned for icc16
Build fails with Intel Compiler v16:

<source>(1698): error: expression must have a constant value
  std::is_class<typename std::decay<decltype(*std::declval<TimeZonePtr&>())>::type>{}
                                                                                    ^
2019-11-29 19:45:59 -05:00
Ten10
940f4a5ceb Support Curl Error Buffer
Allow user to get error message when download fails
2019-11-29 19:38:40 -05:00
Lakshay Garg
018a50bcd0 Work around for a NVCC compiler bug
The NVCC compiler fails to compile the date library due
to a compiler bug which causes it to emit an error when
directly using std::ratio_{multiply,divide} in the template
instantiations for std::duration. This PR works around the
issue by introducing custom ratio_{multiply,divide} which
delegate to the standard library templates
2019-11-29 19:27:36 -05:00
Howard Hinnant
3e376be2e9 Rename link to time_zone_link
* At the request of LEWG
2019-11-08 19:36:09 +00:00
Howard Hinnant
224c71a899 Rename leap to leap_second and leaps to leap_seconds
* At the request of LEWG
2019-11-08 19:24:03 +00:00
jgzhuang
67e272a54e change the order in hh_mm_ss::to_duration() to have correct result on Windows for cases when h is 2147483647 hours and m and s are all 0 (#501) 2019-10-24 09:57:36 -04:00
Howard Hinnant
d399e10cba Bump zoned_time fixes for MSVC from 1900 to 1916 2019-10-22 13:28:48 -04:00
Howard Hinnant
96ffe23f72 Replace INTMAX_MAX with numeric_limits 2019-10-21 22:22:50 -04:00
Mike Ellery
48f1455cd2 CMake refactor for easier subdirectory inclusion 2019-10-18 14:59:37 -04:00
Vitaliy Demidov
e3186e36c2 typo (#498) 2019-10-18 14:47:38 -04:00
Howard Hinnant
3f0f9b3cbe Search for '/' after "zoneinfo" in current_zone() 2019-10-14 15:54:32 -04:00
Griffin Downs
23fa1bb86d Add vcpkg installation instructions (#495) 2019-09-27 09:46:58 -04:00
Howard Hinnant
4481c75192 Improve current_zone().
Fixes #454
2019-09-23 22:09:13 -04:00
Erik Rigtorp
e6d2c08159 Honor symbol visibility settings (#464) 2019-09-23 22:08:07 -04:00
Howard Hinnant
a5c4b4ebf8 Protect is_am and make12 from ADL 2019-09-17 15:48:15 -04:00
Alexej Harm
44344000f0 Fix MSVC C++ version detection 2019-09-12 19:58:05 -04:00
Erik Rigtorp
6d5ff9b958 Point travis badge to upstream master 2019-09-11 14:00:11 -04:00
Erik Rigtorp
375579eac1 Remove point release verison from descriptions 2019-09-11 14:00:11 -04:00
Erik Rigtorp
2ced83ceff Add clang 6 and clang 7 builds 2019-09-11 14:00:11 -04:00
Erik Rigtorp
718cbe3f9b Add gcc 8 build for bionic 2019-09-11 14:00:11 -04:00
Erik Rigtorp
961bf06c32 Add nice names to build matrix 2019-09-11 14:00:11 -04:00
Michael Tsukerman
fe491eff1c Add travis ci configuration file 2019-09-10 09:36:13 -04:00
Alexej Harm
c56f915cc3 fixed shared library support 2019-09-09 11:47:47 -04:00
Alexej Harm
5e57a19abe renamed targets to date and tz 2019-09-09 11:47:47 -04:00
Michael Tsukerman
9454aeda2b set library version to 2.4.1
Update CMakeLists.txt to set library version to 2.4.1
2019-09-06 17:32:15 -04:00
Michael Tsukerman
3a343adf6a Improve main CMake file
Rename target date_interface to interface and tz to timezone.
Export targets date::interface and date::timezone from cmake.
2019-09-06 10:29:30 -04:00
KerryJ
d21333f636 Fixes #484 2019-09-03 23:17:43 -04:00
maximilianriemensberger
cb4bf26fc7 Fix compilation error with GCC 5
GCC 5 complains that `operator-=` and `operator+=` are not constexpr.  The `-` and `+` operator appear seem to be fine.
2019-09-03 22:59:04 -04:00
Tomasz Kamiński
b87eb970c1 Implemented test for checking addition with classes converible to years/months
To work this specific test require current implementation
strategy (template with unspecified argument).
2019-09-03 22:52:31 -04:00
Tomasz Kamiński
5a0057587d Correct behavior for classes for which only lvalue is convertible to string_view.
Added OnlyLValueString test case that shows the problem with
current impl. Implemented the change, that accept TimeZonePtrOrName
by forwarding reference (to preserve value category), and
merged time_zone selection into one trait.
2019-09-01 14:43:50 -04:00
Tomasz Kamiński
5345d135b7 Implemented custom time zone deduction test.
Implemented test for deduction from the custom time zone ptr.
Used OffsetZone extracted for that purpose.
2019-09-01 14:43:50 -04:00
Tomasz Kamiński
7c020642fb Fixed deduction guides for GCC 8.
The GCC 8 was correctly preffering the deduction guide
syntezied from the std::string_view constructor which is more
specialized than deduction guide. Changed the constructor
so the Duration cannot be deduced from it.
2019-09-01 14:43:50 -04:00
Tomasz Kamiński
1d721d9afd Implemented set of basic deduction test.
Implemented test for deduction from string, string_view,
time_zone ptr and other zoned_time.
2019-09-01 14:43:50 -04:00
Howard Hinnant
141ba85614 Fix space-matches 0 spaces at end of format string 2019-08-23 15:51:18 -04:00
Robert Campion
dca8ddc659 Replace computed value with standard macro 2019-07-21 23:43:29 -04:00