Howard Hinnant
d4fb7eb76d
Put unspecified_month_disambiguator in namespace detail
2018-06-10 16:22:21 -04:00
Tomasz Kamiński
0e3e84fd56
Used suggested Tim Song implementation
2018-06-10 16:22:21 -04:00
Tomasz Kamiński
3eac2d376e
Revert "Fixed addition of multi-year duration to year_month."
...
This reverts commit 328cecaa567e8b9da5dfcbcb4de9a550496bb55b.
2018-06-10 16:22:21 -04:00
Howard Hinnant
f5f4d76936
Replace save_stream with save_ostream
...
* In islamic.h and julian.h
2018-06-10 15:44:43 -04:00
Howard Hinnant
c7b69d949a
Change the encoding for an invalid weekday from 7 to 8
2018-06-08 09:50:40 -04:00
Howard Hinnant
48baa942fc
Use uncaught_exceptions in C++17
2018-06-06 13:52:23 -04:00
Howard Hinnant
af415701ba
Update wandbox link
2018-06-06 13:31:03 -04:00
Howard Hinnant
be2ec2310b
Emphasize Sunday over sun in the implementation
...
* Keep the three letter lower case spellings for backwards
compatibility purposes.
2018-06-03 13:55:00 -04:00
Howard Hinnant
40b83654b6
[API BREAKING] Remove conversion from weekday to unsigned
...
* There has been a great deal of anguish over the encoding of
weekdays: whether [0, 6] maps to [Sunday, Saturday] or
[1, 7] maps to [Monday, Sunday]. This commit attempts
to address that issue, but will break a small amount of
code at compile-time. See below on how to fix that.
* The weekday constructor used to accept [0, 6] to represent
[Sunday, Saturday]. It now accepts [0, 7] to represent
[Sunday, Saturday] with both 0 and 7 mapping to Sunday.
* The conversion from weekday to unsigned has been removed.
* To convert a weekday to unsigned replace:
auto u = unsigned{wd};
with:
auto u = (wd - Sunday).count();
This maps [Sunday, Saturday] to [0, 6], which is the
C/POSIX mapping. If you prefer the ISO mapping
([Monday, Sunday] -> [1, 7]), then do:
auto u = (wd - Monday).count() + 1;
2018-06-02 22:56:10 -04:00
Eugene Golushkov
6c4d333026
fixed build in WinRT mode, where some API are not available
2018-06-02 16:14:18 -04:00
Eugene Golushkov
1fdda81a30
fixed build with latest VS2017 v15.7.1; toolset MSVC 14.14
2018-06-02 16:14:18 -04:00
apo
f33e179936
Eliminate use of uninitialized offset.
2018-05-25 09:56:34 -04:00
Tomasz Kamiński
328cecaa56
Fixed addition of multi-year duration to year_month.
...
* Added new overloads for operator+/- between year_month and duration
that is convertible to years, so it is better candidate for operands
that are convertible to both years and months. To preserve
functionality, this operator is conditionally noexcept.
* Reworked year_month_day, year_month_day_last, year_month_weekday,
and year_month_weekday_last.
* Added tests for this new functionality.
2018-05-12 18:21:24 -04:00
Howard Hinnant
5d15157bbb
Fix bug for parsing negative offsets of less than 1h
2018-05-05 12:01:56 -04:00
Howard Hinnant
a91ceefb4e
Allow %H %M and %S to deal with negative durations
2018-04-23 20:31:28 -04:00
Howard Hinnant
88c661e9f3
Fix zoned_time deduction guides
2018-04-23 20:30:58 -04:00
Howard Hinnant
c665992a6e
Allow heterogeneous zoned_time constructors
...
taking {string_view, zoned_time}
2018-04-21 17:45:52 -04:00
Howard Hinnant
9d0bcdb63f
Fix deduction error in parse where only offset is requested
2018-04-18 21:56:11 -04:00
Howard Hinnant
973bd393bc
Respect and minimize tie/flush in from/to_stream
...
* Save/restore tie, setting it to nullptr during the operation
* On construction tie_->flush()
* For ostreams only, flush if unitbuf
2018-04-18 21:47:15 -04:00
Howard Hinnant
d53db7a1cb
And yet more fixes to allow duplicate flags on parse
2018-04-15 15:32:24 -04:00
Howard Hinnant
e5c69d84ab
Fix constexpr issue for VS2015
2018-04-09 11:01:58 -04:00
Howard Hinnant
b48a18a1d9
More fixes to allow duplicate parsing
2018-04-08 15:49:06 -04:00
Howard Hinnant
cdb4b276d9
Allow duplicate parsing into the same fields
...
* as long as all duplicates produce consistent results.
2018-04-07 21:42:00 -04:00
Howard Hinnant
1d9e49ea21
to_stream sets failbit if unable to format
...
* If a formatting flag requests data that is not available in
the Streamable object, or if the Streamable object answers !ok(),
failbit is set.
2018-04-06 11:19:44 -04:00
Howard Hinnant
0125d330ab
Correct to_stream/from_stream handling of stream data
...
* to_stream and from_stream now reset the stream formatting state to
default settings on entry, and restore the stream state on exit.
* to_stream and from_stream now correctly handle mis-modified flags.
* Fix %h to be equivalent to %b instead of %B.
* This addresses issues 319, 320 and 321.
2018-03-31 13:06:57 -04:00
Harry Mallon
e7e1482087
Remove BUILD_TZ_STATIC and replace with BUILD_SHARED_LIBS
...
* This is more standard CMake
* See https://cmake.org/cmake/help/v3.1/command/add_library.html
v2.4.1
2018-03-19 18:04:34 +00:00
Harry Mallon
d6b95dc301
Remove TZ_CXX_STANDARD and instead use CMAKE_CXX_STANDARD
...
* See https://cmake.org/cmake/help/v3.1/variable/CMAKE_CXX_STANDARD.html?highlight=cmake_cxx_standard
2018-03-19 17:59:36 +00:00
Howard Hinnant
700489e475
Introduced full weekday and month names
...
* The standardized version of this library has std::chrono::January
and std::chrono::Sunday in place of std::chrono_literals::jan and
std::chrono_literals::sun. Compatible names added to namespace
date to ease transition from this lib to std::chrono. The old
names are retained for backwards compatibility.
2018-03-18 18:27:04 -04:00
Harry Mallon
e6941697eb
Validate TZdata failed with OS TZdata
2018-03-18 18:17:27 -04:00
Harry Mallon
c311db2f1a
Clean up tz_test README
2018-03-18 18:14:40 -04:00
Harry Mallon
fffa52ac0e
Cleanup and add to README.md
2018-03-18 18:14:40 -04:00
Eugene Shalygin
f105595f04
Use proper lib directory when installing on UNIX
...
Linux distributions use lib, lib32, and lib64 directories for library files,
symlinking them where needed. Let's follow distirbution rules by
utilising CMake module GNUInstallDirs.
2018-03-18 17:55:08 -04:00
Howard Hinnant
20f0595b32
Update standardization progress
2018-03-17 10:57:45 -04:00
Howard Hinnant
674a9e6953
Update README.md
2018-03-16 15:42:13 -04:00
Howard Hinnant
bc8cf368e5
Update readme link to d0355r6
2018-03-14 22:50:18 -04:00
Howard Hinnant
1e8ab50f82
Test modifications for standardization
2018-03-14 22:49:04 -04:00
Marsh Ray
38c5ca38bb
Typo fixes in comment text
2018-03-04 18:26:07 -05:00
Howard Hinnant
0bde4ba8c8
Make the parsing of minutes optional under the flag %z
2018-03-03 11:57:03 -05:00
Don Smyth
afe61df277
Fix case of generated dateConfig so it will work on a case sensitive filesystem
2018-03-02 16:37:32 -05:00
Howard Hinnant
43d8a4eab0
Range check minutes under parse
2018-03-02 09:03:41 -05:00
mwu
ca4036a4b0
Explicitly qualify std::string. Having a global scope string
type shall not break the compilation anymore.
2018-02-23 21:17:26 -05:00
Alexander Karatarakis
a1ceec19fe
Workaround for MSVC
2018-02-20 11:51:28 -05:00
Howard Hinnant
5524dd1ae8
Update README.md
2018-02-15 18:49:37 -05:00
Howard Hinnant
4ada98d247
Enable testing in CMakeLists.txt
...
* Per instructions by @SlavSlavov in https://github.com/HowardHinnant/date/pull/278
2018-01-29 08:39:58 -05:00
Howard Hinnant
040eed838b
Augment path to ios.h
2018-01-26 19:53:51 -05:00
Benno Evers
2acf403bcd
Dont include ios.h
unconditionally.
...
The include in tz.cpp was changed to only include the ios.h header
when compiling on apple platforms, as the documentation states that
only the four files date.h, tz.h, tz_private.h, and tz.cpp should be
required to use the time zone library.
Additionally, the ios.mm file was moved to src/ since it contains
C++ source code.
2018-01-24 20:24:10 -05:00
Tommy Nguyen
637e5d8007
Use target_compile_definitions
...
It's generally preferred to use [`target_compile_definitions`](https://floooh.github.io/2016/01/12/cmake-dependency-juggling.html ) over `add_definitions`.
2018-01-21 12:33:42 -05:00
Tommy Nguyen
362cd8f27e
Account for WIN32
2018-01-21 12:29:13 -05:00
Tommy Nguyen
a4ce4bc2d3
Use correct target
...
Also, fix the formatting in the generator expressions. For some reason, the previous
formatting caused this error:
Target "date_interface" INTERFACE_INCLUDE_DIRECTORIES property contains
path:
...
which is prefixed in the source directory.
2018-01-21 12:29:13 -05:00
Tommy Nguyen
3e5a57467a
Export a CMake config file
...
This will allow users to import the project via CMake methods, i.e `find_package` rather than doing it manually.
2018-01-21 12:29:13 -05:00
Howard Hinnant
3b8372f4fa
Avoid use of undeclared to_utc_time.
...
* Fixes https://github.com/HowardHinnant/date/issues/289
2018-01-18 15:55:58 -05:00
Xuesong Hu
6941691de4
implement current_zone() for iOS using native API from iOSUtils
2018-01-12 14:59:01 -05:00
Michael Maroszek
09b78ba92c
bump msvc define to fix compile issue on MSVC 15.6
2018-01-12 10:51:05 -05:00
Howard Hinnant
28c1c61ac2
Advertise that this works in C++17
2018-01-08 09:54:42 -05:00
Howard Hinnant
55289f0d73
Make tz_dir a function-local static
...
* This solves initialization order issues detailed
in https://github.com/HowardHinnant/date/issues/275
2018-01-05 19:26:44 -05:00
Darrell Wright
b7e58e193f
Set standard or default to C++17
...
Changed cmake to default to c++17 unless TZ_CXX_STANDARD is set(e.g. to 11,14 or 17)
2018-01-05 18:45:29 -05:00
Scott Beil
2b6ee6378c
minutes fix
2018-01-05 18:42:48 -05:00
Darrell Wright
7d80d89a44
Allow specifying cxx standard to target
...
Not everyone can use C++17 even with compilers that support it
2017-12-31 16:42:29 -05:00
ajneu
d9052cffa2
rename and mark-as-advanced the following cmake-variable used in function print_option:
...
CURR_${OPT} -> PRINT_OPTION_CURR_${OPT}
so that the date-project now has the following advanced cmake-variables:
PRINT_OPTION_CURR_BUILD_TZ_STATIC
PRINT_OPTION_CURR_USE_SYSTEM_TZ_DB
PRINT_OPTION_CURR_USE_TZ_DB_IN_DOT
v2.4
2017-12-26 21:00:29 +01:00
ajneu
447687870f
- Interface library name changed from date to date_interface
...
- Print state of set options
- cleanup on duplicate ${CMAKE_THREAD_LIBS_INIT}
2017-12-26 13:39:55 -05:00
ajneu
dbd6e6e388
cmake: remove include_directories() command that is missing directory
2017-12-26 13:35:25 -05:00
ajneu
9178193ad2
cmake: date as INTERFACE target, to enable automatic include_directory
...
(for cases where just date.h, but not "tz.h and its lib" are needed)
2017-12-26 13:35:25 -05:00
Roey Darwish Dror
44c2515280
Use the highest possible C++ standard ( #18 )
2017-12-26 11:12:11 +02:00
Joshua Jackson
0af7654764
Fix iOS build
2017-12-11 05:45:27 -06:00
Howard Hinnant
1eeb4cd652
Prepare for the new definition of IST
...
* Irish Standard Time has a -1h save in the winter instead
of a +1h save in the summer.
2017-12-08 13:08:40 -05:00
Howard Hinnant
b49bdc3ca7
Add missing include <memory> for unique_ptr
2017-12-06 10:12:49 -05:00
Howard Hinnant
c7e5a4d08e
Add posix-style time zone example: ptz.h
2017-12-03 14:40:01 -05:00
Peter Karlovsek
5653e9e3a9
Fixes CURLE_SSL_CACERT (60) when downloading tzdata2017c.tar.gz
2017-12-01 12:14:41 -05:00
Andreas Stallinger
d3b8d4af8d
use target_include_directories instead of include_directories
2017-12-01 11:18:59 -05:00
Howard Hinnant
c2e139ef53
Replace realpath with readlink
...
* Appears to be more modern and Debian Stretch requires it.
2017-11-30 17:17:28 -05:00
Howard Hinnant
a3e8f399c4
ifdef out clock_cast for VC-2017 and earlier
...
* Clients report it can't handle the C++11
* Triggered to be enabled on VC-number-next
* Deprecated API (to_xxx_time) rewritten to be independent of
clock_cast.
* Whitespace changes to bring column length down to 90.
2017-11-30 15:40:37 -05:00
Howard Hinnant
443a29df53
Improve range check on year
...
* The previous fix broke parsing of sub-date quantities such as
durations.
2017-11-30 12:06:51 -05:00
Howard Hinnant
1902b8e8fb
Range check year on parse
2017-11-30 10:45:30 -05:00
Howard Hinnant
c513a20691
Fix off-by-one bug in iso_week::year_lastweek_weekday
...
* The conversion from year_lastweek_weekday to sys_days
and local_days had an off by one error.
* Added test for this case.
2017-11-30 10:28:14 -05:00
Howard Hinnant
87ed7f83cf
Correct IANA data download URL
2017-11-27 12:44:57 -05:00
Darrell Wright
f8cc62c396
Changed naming
...
so that it is parent folder name _pass or _fail (e.g.)
date_test_fail_<test_name>
and date_test_pass_<test_name>
As this should be easier to sort
2017-11-27 10:20:14 -05:00
Darrell Wright
2d2b65906a
Set so that the pass tests are all tests that do not end in .fail.cpp
2017-11-27 10:20:14 -05:00
Darrell Wright
53629fa30c
No longer hardwiring subfolders of test
...
Hid build errors on should fail tests
2017-11-27 10:20:14 -05:00
Darrell Wright
748a1fd5a9
Updated testing so that failures of the should fail tests will compile
...
but will return 1 in testing if they actually built
2017-11-26 23:22:29 -05:00
Darrell Wright
524517b369
Added scripts to do fail testing
2017-11-26 23:11:58 -05:00
Darrell Wright
98ae1e5241
part 1 of merge request
2017-11-26 23:09:46 -05:00
Howard Hinnant
9b88763dbf
Remove noexcept from tai_clock::now() and gps_clock::now()
...
* These functions may try to initialize the tzdb which
could fail.
2017-11-26 21:24:45 -05:00
Darrell Wright
f3741d68ff
Removed OpenSSL requirement. Curl, if it supports SSL, will pull it in.
...
Tested on Ubuntu so far
2017-11-26 16:56:41 -05:00
Darrell Wright
080df4988f
excluded testit from Windows
2017-11-26 16:56:41 -05:00
Darrell Wright
1f27fb7d42
Cannot set USE_OS_TZDB=1 on Windows
2017-11-26 16:56:41 -05:00
Darrell Wright
3e47883c41
Added compile option BUILD_STATIC that defaults to ON to build static
...
libraries. Set to off to build shared
2017-11-26 16:56:41 -05:00
Darrell Wright
3a33cdca7d
Fixed WORKING_DIR path on testit target to use project root as base
2017-11-26 16:56:41 -05:00
Darrell Wright
3c4f0b5ada
Changed testing approach and added gitignore
2017-11-26 16:56:41 -05:00
Darrell Wright
c0a3e528a3
Typo
2017-11-26 16:56:41 -05:00
Darrell Wright
9c67d94f2f
Started adding test building
2017-11-26 16:56:41 -05:00
Darrell Wright
9c39772731
Create CMakeList.txt
...
This is an implementation of cmake config relating to #18
2017-11-26 16:56:41 -05:00
Howard Hinnant
15a63ec819
Updated on behalf of schmidt9
2017-11-26 14:41:40 -05:00
Tomasz Kamiński
543315b700
Reversed order of arguments to clock_time_conversion.
...
Now the order of argument matches the clock_cast function.
The test only is_clock_castable trait still matches is_convertible
order of arguments.
2017-11-26 13:50:21 -05:00
Tomasz Kamiński
7c69f1570d
Changed invocation to match specification
...
Slight difference between invocation on lvalue of clock_time_conversion
object and prvalue.
2017-11-25 22:01:12 +01:00
Tomasz Kamiński
dd91be668e
Added deprecated functions test for real
2017-11-24 23:42:18 +01:00
Tomasz Kamiński
b13c859ff1
Restored deprecated to_clock_time function.
...
Fixed the to_utc_time(const gps_time<Duration>& t) function
to correctly use clock_cast<utc_time>.
Added test to deprecated functions.
2017-11-24 23:37:32 +01:00
Tomasz Kamiński
d4592bd497
Maked clock_time_conversion as const and used alias.
...
Marked operator() of all supplied clock_time_conversion overload
as const.
Changed input type to sys_time/utc_time alias when possible.
Used consitient nomencalture: st for sys_time, ut for utc_time
and tp for time in different clock.
2017-11-24 23:26:56 +01:00
Tomasz Kamiński
9910f5fcc3
Moved clock_cast test to separate dir.
...
Fixed naqme of the to_sys_return_reference test, so it
is invoked.
2017-11-24 22:30:54 +01:00
Tomasz Kamiński
58a4a9518a
Mismatch in return type of converting function is now hard error.
...
Change the implementation, in the way that mismatch in return
type of the from/to_sys/utc functions (not returning time_point,
or returning time_point with inappropriate clock) leads to
hard error.
Added appropariate fail test for to_sys function, including:
* returning an int
* returning time_point of wrong clock
* reutrning reference to time_point
2017-11-24 22:23:50 +01:00
Tomasz Kamiński
5a9b44a37a
Implemented test for casting non-wall clocks and detecting that clocks cannot be casted.
...
Added test that detects if clock_cast<Dest>(Source) properly
SFINAEs if clock's are not castable, this includes test for
steady_clock that is not castable to any wall-clock.
Secondly added steady_based_clock based on steady_clock
(as name indicates), that clock_cast may be extended to clock
non-related to wall-time (sys/utc) using conversion traits.
Final example is pair of ambiguous clocks (amb1/amb2_clock) that can convert
to each other either using sys_clock or utc_clock.
Then the conversion from amb2 to amb1 is disambiguated
via trait specialization.
2017-11-24 18:08:00 +01:00