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
9c181a1440
Update tests for default constructible:
...
* weekday_indexed
* year_month_weekday
2017-08-05 16:31:18 -04:00
Howard Hinnant
aa4dafcc46
Silence sign conversion warnings
2017-06-12 13:33:47 -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
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
76c906d779
Get off of day_point
2016-05-21 10:24:25 -04:00
Howard Hinnant
47cf8a7d42
Silence warning
2015-12-05 19:13:18 -05: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
Howard Hinnant
a0d2343eab
Try disabling construction of weekday from int.
...
Also fix bug in round for negatives.
2015-09-02 20:48:44 -04:00
Howard Hinnant
9b79ad2ce2
Add tests for time_of_day and make_time
2015-08-15 14:21:43 -04:00
Howard Hinnant
2841bc69a7
Exhaustive survey test for op div
2015-08-15 12:33:10 -04:00
Howard Hinnant
12e6d38bba
Add tests for operator/()
2015-08-14 19:17:12 -04:00
Howard Hinnant
27ebc9dc44
Add tests for year_month_weekday_last
2015-08-14 16:55:06 -04:00
Howard Hinnant
6e347c11e9
Add tests for year_month_weekday
2015-08-14 16:47:11 -04:00
Howard Hinnant
5f182bc410
Add tests for year_month_day_last
2015-08-14 16:26:42 -04:00
Howard Hinnant
cb3ffd10e0
Add tests for year
2015-08-14 13:57:45 -04:00
Howard Hinnant
751f6aa279
Extra sanity checks for year_month_day
2015-08-10 23:09:56 -04:00
Howard Hinnant
e95858bb7d
Add tests for year_month_day
2015-08-09 22:18:31 -04:00
Howard Hinnant
7796894a1c
Add tests for year_month
2015-08-09 17:37:33 -04:00
Howard Hinnant
c8f5ec5b4d
Add tests for month_weekday_last
2015-08-09 16:31:12 -04:00
Howard Hinnant
71d54735b5
Add tests for month_weekday
2015-08-09 15:55:48 -04:00
Howard Hinnant
6ef4eac56e
Add test for month_day_last
2015-08-09 15:41:55 -04:00
Howard Hinnant
6e0ce6aafe
Add test for month_day
2015-08-09 15:34:50 -04:00
Howard Hinnant
8c3023fb52
Add test for weekday_last
2015-08-09 15:11:55 -04:00
Howard Hinnant
1534d75014
Add test for weekday_indexed
2015-08-09 15:07:08 -04:00
Howard Hinnant
55d2098c6f
Add weekday tests
2015-08-09 14:48:11 -04:00
Howard Hinnant
57c7d88eda
Eliminate redundant tests:
...
* The unit tests should reflect basic definitions.
* Derivative relationships do not need to be tested.
* Derivative tests needlessly increase test times and noise.
2015-08-09 13:27:39 -04:00
Howard Hinnant
999dfc4b37
Change to MIT copyright
...
* Added unicode copyright to CLDR-derived mapping.
2015-08-08 17:03:43 -04:00
Howard Hinnant
5104a4afcb
Revert: Make months and years not convertible to seconds:
...
* After much consideration I consider this not a good change.
* It introduced a completely arbitrary mathematical relationship
among the units.
* This commit restores a precise relationship among the units which
is based on the Gregorian calendar.
* However this experiment has been preserved in the git history.
2015-08-08 12:45:55 -04:00
Howard Hinnant
fd485c5383
[X] Make months and years not convertible to seconds:
...
* The Gregorian average of months and years is an
integral number of seconds.
* This patch slightly tweaks the average to make it
not an integral number of seconds, and thus these
units no longer implicitly convert to seconds.
* This will flag naive mixing of years, months and seconds
as a compile time error.
2015-08-05 21:11:50 -04:00
Howard Hinnant
756460892c
Initial unit test submission.
2015-08-02 15:56:48 -04:00