Howard Hinnant
481771ef5e
Add support down to femtosecond precision
...
* Requires platform specific use of 128bit integral representation
(e.g. std::chrono::duration<__int128_t, std::femto>).
2017-09-09 10:30:39 -04:00
Howard Hinnant
aad6010831
Add test for custom time zone support
2017-08-31 10:44:07 -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
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
aa4dafcc46
Silence sign conversion warnings
2017-06-12 13:33:47 -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
0fb3921e5b
Fail if you need a valid year and don't parse one.
2017-05-20 23:04:49 -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
2f8997d3ed
Make parse fail if fmt string is not completely consumed.
2017-04-18 12:02:21 -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
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
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
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
628404b87c
Re-implement parse.
...
* Work with const CharT* format at the lowest level.
* Avoid dependence on std::lib except for locale-sensitive parsing.
* Add tests for parse.
2016-12-26 16:27:56 -05:00
Howard Hinnant
8a3aeb566b
Fix and test format %y
2016-11-27 15:30:01 -05:00
Howard Hinnant
a5450e9d02
Fix and test format %C
2016-11-27 13:41:24 -05:00
Howard Hinnant
2310435582
Add a format test stressing range
2016-11-26 16:15:08 -05:00
Howard Hinnant
3fb4d32922
Update tests for default constructible calendar types
2016-09-15 20:21:56 -04:00
Howard Hinnant
b4ca58d9a8
Revert "Remove support for using system() now other means proven."
...
This reverts commit ebf3b0776ab8d68ca9b3f4f02415092bc8935d75.
2016-08-05 20:16:09 -04:00
gm
ebf3b0776a
Remove support for using system() now other means proven.
...
* Other miscellaneous improvements.
2016-07-27 18:45:10 -04:00
Howard Hinnant
b7e997adba
Update 2016f validation file
2016-07-05 12:05:49 -04:00
Howard Hinnant
fc9d0bb99a
Add 2016e validation file
2016-06-16 22:07:05 -04:00
gm
55087c6cbd
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:03:12 -04:00
gm
7e66cb2e83
Improve cross platform support.
...
Make validate work for C++11 because the library supports it.
Fix an unused variable mistake i made earlier.
Make constructor public, seems it should be. Possible compiler bug?
2016-06-04 13:38:50 -04:00
gm
c7960fbd89
Catch and display exception messages a Microsofts C runtime on Windows doesn't show them otherwise.
2016-06-02 00:52:32 +12:00
Howard Hinnant
630d67ce0d
Rename Info to sys_info in test
2016-05-31 10:10:33 -04:00
Howard Hinnant
6fe8b4b7f3
Update copyright to 2016
2016-05-30 22:21:08 -04:00
Howard Hinnant
ea2d0d3357
constexpr more stuff and clean up whitespace
2016-05-30 22:09:21 -04:00
Howard Hinnant
c0de8dc843
Change license in testit
2016-05-26 12:23:45 -04:00
Howard Hinnant
76c906d779
Get off of day_point
2016-05-21 10:24:25 -04:00
Howard Hinnant
f5f0f80778
Get rid of tz. Hide unnecessary API. Clean up get_info
2016-05-08 22:59:39 -04:00
Howard Hinnant
1e5d2fa8dd
Create local and system time types for timezone functions.
...
* Add sys_time.
* Add sys_days.
* Add sys_seconds.
* Add local_time.
* Add local_days.
* Add local_seconds.
* Rename day_point to sys_days.
* Rename Zone to time_zone.
2016-05-03 23:19:09 -04:00
Howard Hinnant
d8426940d7
Update tz validation test with more checking
2016-04-17 21:51:30 -04:00
Howard Hinnant
d49afb8a30
Add test for date composition operators
2015-12-23 13:20:08 -05:00
Howard Hinnant
270b8554f5
Test year_lastweek_weekday
2015-12-22 19:48:11 -05:00
Howard Hinnant
edc3aee402
Test year_weeknum_weekday
2015-12-22 19:08:16 -05:00
Howard Hinnant
fe8fc38d7a
Test lastweek_weekday
2015-12-22 17:59:28 -05:00
Howard Hinnant
099c068dcf
Test weeknum_weekday
2015-12-22 15:58:04 -05:00
Howard Hinnant
8b885976bc
Add test for year_lastweek
2015-12-22 15:37:53 -05:00
Howard Hinnant
b2203746d9
Add test for iso_week::year_weeknum.
2015-12-22 15:12:51 -05:00
Howard Hinnant
d5b26a8796
Tests for iso_week::year
2015-12-21 22:13:23 -05:00
Howard Hinnant
906f5eb4f9
Tests for iso_week::weeknum
2015-12-21 21:33:50 -05:00
Howard Hinnant
e10c55d4a6
Intitial ios_week tests
2015-12-21 20:27:57 -05:00
Howard Hinnant
47cf8a7d42
Silence warning
2015-12-05 19:13:18 -05:00
Howard Hinnant
db9f0d19ba
Make Zone move-only
2015-11-03 20:01:12 -05:00
Howard Hinnant
819d2c3575
Minor cleanup and crank up warnings.
2015-10-27 12:14:30 -04:00
Howard Hinnant
c8ee261043
Added a few convenience field getters:
...
* year_month_weekday::weekday()
* year_month_weekday::index()
* year_month_weekday_last::weekday()
2015-09-19 13:46:09 -04:00
Howard Hinnant
68f7d11c45
Add sizeof test
2015-09-06 16:58:22 -04:00