469 Commits

Author SHA1 Message Date
Howard Hinnant
819d2c3575 Minor cleanup and crank up warnings. 2015-10-27 12:14:30 -04:00
Howard Hinnant
333894fc9d Merge branch 'gm_issue_19' of git://github.com/gmcode/date into gmcode-gm_issue_19 2015-10-27 11:53:29 -04:00
Howard Hinnant
342d15ce56 Give last_spec an explicit default ctor 2015-10-27 11:52:31 -04:00
gm
2467d56f11 Address issue 19: define NOMINMAX and WIN32_LEAN_AND_MEAN. In addition, fix some warnings so MSVC will compile at /W4 with no warnings.
No functional change intended.
2015-10-22 22:36:37 +13:00
Howard Hinnant
8628a5c72d Add link to Cppcon 2015 slides 2015-09-28 19:38:13 -04:00
Howard Hinnant
6b03ff2e70 Push tz configuration up higher in the source file. 2015-09-27 10:49:10 -04:00
Howard Hinnant
4e6872fb68 Merge branch 'gmfix2' 2015-09-27 10:48:18 -04:00
gm
635ec55065 Throw a runtime error if the install folder does not exist.
Replace my accidental use of NULL with nullptr.
Improve some comments.
2015-09-27 20:55:55 +13:00
HowardHinnant
9c04c2f182 Merge pull request #14 from gmcode/gmfix
Fix a WIN32 -> _WIN32 typo and try to make some comments more readable.
2015-09-23 19:54:08 -07:00
gm
0791828329 Fix a WIN32 -> _WIN32 typo and try to make some comments more readable. 2015-09-24 14:46:20 +12: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
6af1976e36 Move all literals into namespace date_literals
This includes both the literal operators, and the constexpr literals such as sun and jan.
2015-09-06 17:58:29 -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
479cd16986 Add validate test for timezones 2015-08-15 16:00:42 -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
a2ac8a8003 Tweak testit to better handle OPTIONS 2015-08-10 20:59:29 -04:00
HowardHinnant
5c7692be4f Merge pull request #12 from villevoutilainen/patch-2
Comment typos
2015-08-10 20:32:18 -04:00
Ville Voutilainen
eb32682e99 Comment typos 2015-08-10 23:14:15 +03:00
HowardHinnant
6a5c88b92d Merge pull request #11 from villevoutilainen/patch-1
Add myself to tz.cpp copyright
2015-08-10 10:10:31 -04:00
Ville Voutilainen
13de3eb7f2 Add myself to tz.cpp copyright 2015-08-10 09:59:01 +03:00
Howard Hinnant
e95858bb7d Add tests for year_month_day 2015-08-09 22:18:31 -04:00
Howard Hinnant
4b8ca1c24d Change year_month_day_last to store a {year, month_day_last}
* from storing a {year, month}.
    * Change constructor from {year, month} to {year, month_day_last}.
    * Add getter from year_month_day_last().
    * Fix up operator/() as required.
    * This is an API change, but not a functionality change.
    * Rationale: consistency.
2015-08-09 18:37:46 -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
e701a42ced Change month_weekday_last to store a {month, weekday_last}
* from storing a {month, weekday}.
* Change constructor from {month, weekday} to {month, week_last}.
* Change getter from weekday() to weekday_last().
* Fix up operator/() as required.
* This is an API change, but not a functionality change.
* Rationale: consistency.
2015-08-09 16:30:42 -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
28eadffa06 Implement '%z' 2015-08-08 18:11:35 -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
2d115a8022 Add to_duration() to time_of_day:
* This is a synonym for static_cast<precision>(*this).
* This variation can be easier to spell when the precision
  is not conveniently available.
2015-08-08 13:38:12 -04:00
Howard Hinnant
33f923b508 Rename seconds_point to second_point for consistency with day_point. 2015-08-08 13:20:12 -04:00
Howard Hinnant
0d0841f5b8 Rename current_timezone() to current_zone():
* Better symmetry with locate_zone(name).
2015-08-08 13:06:04 -04:00
Howard Hinnant
0fe43bab32 Merge branch 'test'.
The unit tests are still very much a work in progress.
But the work now lives on the master branch.
2015-08-08 12:52:45 -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
gm
c21e392c81 Initial Win32 support.
This library now compiles on Windows but requires VS2015 for Windows.
VS2013 may work but this has not been tested yet.
Requires NOMINMAX to be defined to avoid clashes with the Windows.h
headers and the C++ stl and this libraries Date max functions.
Also known to work equivalently with recent g++ and mingw combinations
but -std=C++14 flag should be set.
C++14 restrictions may be relaxed later. Patches welcome!
g++ 5.1 was tested. It may work with other version but that hasn't been tried.
Mac OS and Linux systems are known to compile with -std=c++11
current_timezone and locate_zone will return iana names not windows
time zone names. This is expected and as designed.
2015-08-06 23:16:03 -04:00
HowardHinnant
225a2b6c65 Update README.md 2015-08-05 21:31:12 -04:00
HowardHinnant
328d2a0fd0 Update README.md 2015-08-05 21:27:20 -04:00