Howard Hinnant
5132385454
Remove obsolete LAZY_INIT flag.
2017-06-04 20:32:37 -04:00
Howard Hinnant
5c38ad84e8
Eliminate TIMEZONE_MAPPING by making it equivalent to _WIN32.
...
* Clean up indenting and whitespace.
* No functionality changes intended.
2017-06-04 20:32:37 -04:00
Howard Hinnant
8b743db4b6
Reorganize readme
2017-05-31 20:49:51 -04:00
Howard Hinnant
9c9ddeba37
Work around EDG 4.11 front end bug.
2017-05-21 13:41:31 -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
Tullio Menga
83c8b4d522
changes for compatibility with Clang with Microsoft CodeGen (v140_clang_c2):
...
- added date:: namespace to flloor() and abs() calls
- added IUnknown forward declaration before including Windows headers to prevent issue with objbase.h
- minor changes
2017-05-08 10:04:20 -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
f57432d7b4
Don't skip white space by default in from_stream.
...
* Put a space at the beginning of your
format string to recover this behavior.
2017-05-04 14:47:28 -04:00
Howard Hinnant
e8f0dca452
Fix type-o in to_stream duration overload.
2017-05-04 10:04:17 -04:00
Tomi Valkeinen
44f6dfc58e
fix compile warning about unused get_download_gz_file()
...
get_download_gz_file() is not used when HAS_REMOTE_API=0, and causes:
warning: 'std::__cxx11::string date::get_download_gz_file(const string&)' defined but not used [-Wunused-function]
Wrap get_download_gz_file() inside #ifdef to remove the warning.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
2017-05-02 20:10:44 -04:00
Jaak Ristioja
ec7db09085
Use system_error instead of strerror_r:
...
* Addresses portability issues.
2017-05-02 20:10:44 -04:00
Howard Hinnant
cb83bc2501
Update README.md
2017-04-24 16:46:58 -04:00
Howard Hinnant
faec35eaf1
Update README.md
2017-04-23 12:49:22 -04:00
Howard Hinnant
20efec5b16
Update README.md
2017-04-23 12:48:06 -04:00
Howard Hinnant
b2dc8b1f6e
Tweak getTimeZoneKeyName():
...
* for systems that return "Coordinated Universal Time".
* return "UTC" instead.
2017-04-18 20:48:28 -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
c64d69b1e1
Avoid getting localized time zone names from Windows OS.
...
* Use GetDynamicTimeZoneInformation to get .TimeZoneKeyName
https://msdn.microsoft.com/en-us/library/windows/desktop/ms724318(v=vs.85).aspx
> Retrieves the current time zone and dynamic daylight saving time settings.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms724253(v=vs.85).aspx
> The name of the time zone registry key on the local computer.
* This avoids the need to map from StandardName to TimeZoneKeyName.
* Using .DynamicDaylightTimeDisabled = true forces the OS to return a
non-daylight saving time result.
* Use of wcstombs is preferred over wstring_convert as the latter is now
deprecated in C++17 because the implementors could not interpret the
specification.
2017-04-17 19:06:58 -04:00
gm
885910375f
Fix pragma warnings. Displayed at least by MSVC.
2017-04-16 23:53:37 +12:00
Howard Hinnant
d15491103b
Move chrono_io.h functionality into date.h.
2017-04-13 21:01:47 -04:00
Howard Hinnant
05db422ca9
Respect width and padding in "chrono_io.h"
2017-04-13 18:02:26 -04:00
Howard Hinnant
2c094f5559
Restrict parse of %Z to valid timezone names and abbrev.
2017-04-13 14:09:14 -04:00
Howard Hinnant
096bad2622
Parse should fail if fmt string is not consumed.
2017-04-13 12:45:28 -04:00
Howard Hinnant
fc3d4d97fe
Silence unused variable 'leaps' warning
2017-04-13 12:44:21 -04:00
Howard Hinnant
4f27361378
Add range checking for the time-of-day fields during parse.
...
* Also refactor the leap-second logic used in utc_time.
2017-04-07 18:52:09 -04:00
Jan Kratochvil
a4eef8e20c
Fix gcc -O -D_FORTIFY_SOURCE.
2017-04-03 20:46:36 -04:00
Jan Kratochvil
1fd0806757
Fix -Wshadow for gcc and clang.
2017-04-03 20:46:36 -04:00
Howard Hinnant
3daf8c1ffe
Minor tweaks.
2017-04-01 21:53:29 -04:00
Florian Dang
c4c2550b29
Ignore GCC warnings.
...
* 4.9 missing initializer warnings
* pedantic for __int128 case
* Wrap diagnostic push and pop in tz.cpp and date.h.
2017-04-01 12:36:54 -04:00
Howard Hinnant
f30450b4c5
Merge branch 'master' of github.com:HowardHinnant/date
2017-03-30 14:45:42 -04:00
Howard Hinnant
d29cd4e343
Fix formatting bug for utc_time.
2017-03-30 14:44:42 -04:00
Howard Hinnant
5afd241be6
Update README.md
2017-03-28 21:04:59 -04:00
Howard Hinnant
f044cb0583
Update README.md
2017-03-28 21:02:32 -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
3ab6510cab
Update copyright to 2017
2017-03-21 21:52:51 -04:00
Howard Hinnant
5eff31acdd
Update README.md
2017-03-21 10:41:05 -04:00
Florian Dang
5e86f2c5ba
Create downloads folder when it does not exist yet.
2017-03-20 18:25:19 -04:00
Howard Hinnant
dbee0e7da4
Allow parsing %Ez to parse only 1 hour digit.
2017-03-17 20:18:06 -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
9e1120c676
Make time_of_day default constructor non-explicit.
...
Add zoned_time const char* overloaded constructor.
2017-03-12 15:18:53 -04:00
gaspardpetit
f4292e6aca
Added Alloc argument to template parameters to support custom allocators in from_stream
2017-03-11 20:13:06 -05:00
Gaspard Petit
a811a20748
Fixes minor typos in comments - no actual change to code
2017-03-08 11:28:35 -05:00
Howard Hinnant
3df43424ac
Add from_stream
2017-03-02 13:16:22 -10: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
ffc8cd0a3b
Add format and parse to tai_time, gps_time, year_month_day
2017-02-26 09:28:15 -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
3233cbaf9a
Update link to latest proposal
2017-02-13 13:00:12 -05:00
Jiangang (Jeff) Zhuang
3e906a2409
Remove a leftover output to std::cout
2017-02-13 12:17:11 -05:00
Howard Hinnant
c7f2995d0b
Remove outdated warning about the version change.
2017-02-11 11:04:14 -05:00
Howard Hinnant
0d6de15043
Work around {} bug for older compilers
...
* iso_week.h
2017-02-08 14:44:37 -05:00
Howard Hinnant
5c09ae73f2
Work around {} bug for older compilers
2017-02-08 11:32:33 -05:00
Howard Hinnant
098223cf6d
Second try at silencing "unused" warning for strerror_r
2017-02-07 17:31:14 -05:00
Howard Hinnant
6a31edcb38
Silence "unused" warning for strerror_r
2017-02-06 10:18:40 -05:00
Howard Hinnant
800ae143aa
Correct the return type on two format overloads
2017-02-06 10:18:08 -05:00
Nicolas Veloz Savino
c1034550d2
Exclude expand_path when INSTALL is not defined
2017-01-30 18:02:06 -05:00
Howard Hinnant
3a9880999d
Add format and parse overloads for durations
2017-01-28 16:21:21 -05:00
Howard Hinnant
ce67ee0997
Add License file
2017-01-26 19:42:42 -05:00
Howard Hinnant
2b8e6562ae
Work around VS-2015 bug
2017-01-24 15:35:28 -05:00
James Beach
186dbb2891
Enable CONSTCD14 for VS2017
2017-01-19 12:46:11 -05:00
Howard Hinnant
49a59e5665
Add support for unsigned-based durations in time_of_day
2017-01-14 12:54:03 -05:00
Jiangang (Jeff) Zhuang
095f66af28
resolve /etc/localtime by calling realpath
2017-01-14 07:46:05 -05:00
Jiangang (Jeff) Zhuang
ea1717e8ab
Define DATE_API empty when building static lib on Windows
2017-01-10 20:31:32 -05:00
Howard Hinnant
659cdca5dc
Only define get_windows_zones_install() under TIMEZONE_MAPPING
2017-01-09 21:01:39 -05:00
Howard Hinnant
634b84eb60
Introduce set_install as suggested by PR 99
...
* Retain install variable as a function local static to maintain
recent fixes to initialization order problems.
2017-01-07 18:27:40 -05:00
Alexandre Dupas
41093d05d8
Use CONSTDATA in function parse making compiler without constexpr support happy
2017-01-07 13:19:02 -05:00
Jiangang (Jeff) Zhuang
c6f3dd2832
make the location of windowsZones.xml configurable
2017-01-05 20:28:12 -05:00
Howard Hinnant
e203304afd
Give DATE_API a default definition.
2017-01-05 20:24:46 -05:00
Jiangang (Jeff) Zhuang
4e44539a59
export symbols on Windows
2017-01-04 20:48:34 -05:00
Roel Standaert
09537c4e19
Added missing #include <tuple> in tz.cpp
...
This is needed for std::tie. GCC and Clang are fine with it missing, but
my Visual Studio doesn't like it.
2017-01-03 10:23:38 -05:00
Howard Hinnant
2935f80109
Have get_version check for the file named version first
2.1.0
2017-01-01 15:02:08 -05:00
Howard Hinnant
4a1c49152f
Enable previous fix for C++11 as well.
2017-01-01 14:51:10 -05:00
gm
07d9e8a0fe
Enable the c++14 CONSTDATA code path for VS2017 and fix const const warning.
2017-01-01 18:01:20 +13:00
Howard Hinnant
6889dc69fb
Add missing #include
2016-12-26 18:34:40 -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
2216bfbe44
Work around VS-2015 bug
2016-12-07 10:47:50 -05:00
Jiangang (Jeff) Zhuang
64ea0a5bc3
move file scope static variables into functions to deal with static initialization order problem
2016-12-02 20:57:21 -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
6b3ea4516a
Fix bugs with formatting fractional seconds
2016-11-26 13:37:38 -05:00
Howard Hinnant
298e9aff2d
Add to_stream which avoids temporary streams and strings.
...
* This is a low-level formatting facility which other functions
such as format call into.
2016-11-25 20:37:51 -05:00
Howard Hinnant
0cfa783b14
Unify and simplify fractional decimal seconds formatting
...
* Many of the ideas and some of the code herein is credited to
Adrian Colomitchi
* Decouple fractional decimal seconds formatting from time_of_day
formatting so that it can be more easily used elsewhere in the
future.
* Include super-second durations such as nanocenturies and
microfortnights in the class of durations that will get formatted
with fractional decimal seconds.
* If a duration is exactly representable with fractional decimal
seconds not exceeding 18 decimal fractional digits, format it
exactly. Otherwise format it to 6 fractional decimal digits
(microseconds precision). The number 18 is chosen as this is the
limit of std::ratio using 64 bits (i.e. atto).
* The above bullet implies that durations with ratio<1, 4> will now
be formatted with 2 fractional decimal digits instead of 1.
ratio<1, 8> will be formatted with 3, and ratio<1, 3> with 6.
* Unify the implementation into one C++11 implementation that works
equally well with C++14.
* Drive-by fix a couple formatting bugs dealing with negative
durations.
* Deprecate the make_time functions taking unsigned md by removing
their documentation. Also deprecate the corresponding time_of_day
constructors taking unsigned md.
* This change paves the way for future formatting improvements.
2016-11-24 19:53:39 -05:00
Howard Hinnant
44e0480087
Fix formatting bug with %Ez
2016-11-12 18:21:21 -08:00
Paul Dreik
63e33bdf49
silence warnings in gcc 6.2
2016-11-12 15:19:46 +01:00
Howard Hinnant
33f7cc6de4
Fix overflow bug in parse
2016-11-08 12:59:00 -08:00
Howard Hinnant
27964fa642
Fix C++11 constexpr bug in year_lastweek_weekday::weeknum()
2016-11-02 14:21:26 -04:00
Howard Hinnant
887d7574b1
Default USE_SHELL_API to 1
2016-10-23 18:58:00 -04:00
Howard Hinnant
bae66f2bff
Update README.md
2016-10-22 13:42:36 -04:00
Howard Hinnant
1f7325ef7f
Update README.md
2016-10-20 17:14:15 -04:00
Howard Hinnant
9f7a438f7d
Add unary operators + and - to year
2016-10-19 12:01:26 -04:00
Howard Hinnant
9e25c2d74f
Supply missing imbues in format
2016-10-18 11:52:07 -04:00
Howard Hinnant
806c29fddc
Lots of minor changes motivated by reviews of the draft proposal
2016-10-15 17:31:08 -04:00
Howard Hinnant
501609bacf
Make those time_point conversions which can be noexcept, noexcept
2016-10-12 19:48:45 -04:00
Howard Hinnant
cfa55850c7
Fix dangling reference bug in parse
2016-10-11 10:34:59 -04:00
Howard Hinnant
ff929570f9
Update readme with R1 draft proposal
2016-10-09 20:19:18 -04:00
Howard Hinnant
fab89b205b
Minor cleanups in the clocks
2016-10-09 20:11:11 -04:00
Howard Hinnant
2ba541b684
Merge branch 'master' of github.com:HowardHinnant/date
2016-10-08 16:07:01 -04:00
Howard Hinnant
81b5cc65f0
Remove static conversion functions from clocks
...
The free function converters are sufficient API.
2016-10-08 16:05:10 -04:00
Howard Hinnant
381cbf9a7b
Fix type-o in parse
2016-10-08 15:04:27 -04:00
Howard Hinnant
f66af06870
Simplify implementation details of "chrono_io.h"
2016-10-08 15:03:33 -04:00