Commit Graph

216 Commits

Author SHA1 Message Date
Vadim Zeitlin
8b3eb4a069 Check wxDateTime components validity more rigorously.
Check that the provided day is strictly positive and also that the month is in
valid range: while it should always be, considering that it's an enum element,
in practice people often cast ints to wxDateTime::Month with potentially fatal
results. Catch this with an assert in wxDateTime::Tm::IsValid().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66203 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-18 12:41:13 +00:00
Vadim Zeitlin
2a9a4f5be9 Pas long to _get_timezone() even for VC8.
Apparently the MSDN documentation for VC8 is wrong and _get_timezone()
function expects a long and not int when using it (as is already the case with
VC9 and VC10).

Closes #12653.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66013 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-04 10:49:10 +00:00
Vadim Zeitlin
7e9c57542f Use _get_timezone() function instead of _timezone with MSVC8+.
While some (but not all) versions of VC8 CRT still define _timezone variable,
it is deprecated and shouldn't be used and referencing it can result in
linking problems if it pulls in static CRT.

Just use _get_timezone() function instead for the VC versions that support it
(as was already done in r54417 for VC8 in 2.8 branch).

Closes #4691.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-02 11:57:30 +00:00
Vadim Zeitlin
5ed8879eaf Make wxDateTime::Tm::yday public and document it.
There doesn't seem any reason to allow access to all the other struct Tm
fields but not yday so make it public, fill it in correctly when creating Tm
without using its ctor from struct tm and document struct Tm itself including
its yday field.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65649 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-26 22:11:21 +00:00
Vadim Zeitlin
fdb44eb24f Initialize wxDateTime::Tm::yday in the ctor.
Set Tm::yday to a fixed value in the ctor as well instead of not initializing
it at all.

This bug actually didn't have any visible consequences as yday is currently a
private member of struct tm and didn't seem to be used anywhere but it at
least avoids MinGW 4.x warnings about possibly uninitialized variable and
might become important in the future if we allow accessing this field.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-26 22:11:16 +00:00
Vadim Zeitlin
10acc3ef6a Ignore time component of SYSTEMTIME in wxCalendarCtrl.
Native month calendar functions doesn't always return correct values in the
time part of SYSTEMTIME so ignore it and use just the date component.

To simplify doing it, add helper (MSW-specific) SetFromMSWSysDate() and
GetAsMSWSysDate() functions which convert between wxDateTime and SYSTEMTIME
but take only date component into account.

This commit partially replaces changes of r63560 and closes #11276.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64208 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-04 21:59:17 +00:00
Vadim Zeitlin
e4d0689515 Remove unused static constant.
HOURS_PER_DAY was used only in the part of the code which was moved to
src/common/datetimefmt.cpp and some compilers (e.g. IRIX mipsPro) now warn
about an unused static constant in datetime.cpp, so just remove it from there.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-02-28 11:08:30 +00:00
Vadim Zeitlin
404013f849 Correct wxDateTime::GetWeekOfMonth() for days in the beginning of January.
This function was implemented in terms of GetWeekOfYear() which made it tricky
to get it right as GetWeekOfYear() can, correctly, return week number for the
previous year for the first days of January (and also from the next one for
the last days of December).

Replace this implementation with a simple one directly counting the number of
weeks since the first of the month, this seems to be much simpler and does
pass the new unit test case which the old version failed.

Also make the unit test failures more informative by using
WX_ASSERT_EQUAL_MESSAGE() instead of CPPUNIT_ASSERT_EQUAL().

See #11561.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62916 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-17 17:51:12 +00:00
Paul Cornett
a243da29c8 make array data fully const
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-02 17:28:45 +00:00
Julian Smart
5e3566ffaf Applied #9668: made wxGetTimeZone() dynamic
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62097 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-24 19:12:31 +00:00
Vadim Zeitlin
582c3a1964 Take time into account in wxDateTime <-> SYSTEMTIME conversion.
wxDateTime::SetFromMSWSysTime() and GetAsMSWSysTime() worked with the date
part of SYSTEMTIME only, do use time part as well now.

Closes #11176.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61842 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-06 14:31:01 +00:00
Vadim Zeitlin
ff971416bb Use correct array size for weekday names.
DAYS_PER_400_YEARS was erroneously used instead of DAYS_PER_WEEK which
resulted in creation of much larger object file than needed as the array is
initialized.

Closes #11143.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61765 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-26 20:44:09 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
9611b7975f use WXSIZEOF(x) instead of sizeof(x)/sizeof(x[0]) (closes #10701)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61296 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-02 22:43:31 +00:00
Vadim Zeitlin
dd36b5a3e5 don't redefine HAVE_STRFTIME as it can already be defined by configure (closes #10861)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60842 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-31 18:57:20 +00:00
Vadim Zeitlin
e538985edc added GetEnglish{Month,WeekDay}Name()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59811 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-24 16:51:10 +00:00
Vadim Zeitlin
4b6a582bef replace more __WXDEBUG__ occurrences with wxDEBUG_LEVEL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-22 12:53:48 +00:00
Francesco Montorsi
1ee2f9d96d share a few helpers between datetime.cpp and datetimefmt.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59677 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-20 22:07:09 +00:00
Francesco Montorsi
48fd6e9dd7 build fix (part of r59673, r59656)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59676 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-20 21:42:43 +00:00
Francesco Montorsi
c4e085608a make GetNumOfDaysInMonth static again; in datetimefmt.cpp use GetNumberOfDays instead.
Attempt to fix wxDateTime::ParseFormat(date, "%c") by using strptime() before our own heuristic checks.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-20 20:45:20 +00:00
Francesco Montorsi
54e660f85e move parsing helpers, too (part of r59656)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59658 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-20 19:25:48 +00:00
Francesco Montorsi
98919134f0 no real changes: split the huge datetime.cpp in two parts: one dedicated to code for formatting/parsing, the other for everything else
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-20 19:16:21 +00:00
Vadim Zeitlin
645706a24e support %l in wxDateTime::ParseFormat()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59421 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-07 19:36:59 +00:00
Vadim Zeitlin
6b522db5c8 correct wxDateTime DST begin/end computations for years > 2006 in USA (closes #10425)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58486 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-28 21:52:37 +00:00
Vadim Zeitlin
c9e46deaa7 fix wxTimeSpan::Format() for negative spans with 0 hour component (#10055)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-21 12:16:06 +00:00
Vadim Zeitlin
b3483429d4 compilation fix for wxStrlcpy use in STL Unicode build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57067 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-02 15:31:12 +00:00
Vadim Zeitlin
e408bf5257 add safe wxStrlcpy() function and replaced all wxStrncpy() calls by it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57023 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-29 14:41:02 +00:00
Vadim Zeitlin
5c33522fca replace wx_{const,static,reinterpret}_cast with their standard C++ equivalents
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-02 02:39:52 +00:00
Vadim Zeitlin
b5f85206a9 fix ParseFormat("%d") to set the date it finds (#10002)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55900 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-26 15:27:08 +00:00
Vadim Zeitlin
adec277f04 return empty string instead of some garbage if strftime() failed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54961 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-03 14:34:43 +00:00
Vadim Zeitlin
cf9f673789 fix wxDateTime::ParseRfc822Date() to handle missing seconds (ticket #1341)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53900 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-01 14:37:26 +00:00
Vadim Zeitlin
77fa3d8243 add a special macro for comparing time_t values to fix unit test compilation on platforms with 64 bit time_t (such as FreeBSD 6.2 apparently)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53894 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-01 13:01:59 +00:00
Vadim Zeitlin
154014d681 added wxDateTime::SetFrom/GetAsMSWSysTime() (#9161)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53697 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-22 00:49:27 +00:00
Julian Smart
1fcca711af Resolved ambiguity for VC 9
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51568 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-06 08:45:55 +00:00
Vadim Zeitlin
c20d5805aa compilation fix with wxUSE_EXTENDED_RTTI==1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51515 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-03 12:24:05 +00:00
Vadim Zeitlin
6b9c622a2e define __VISUALCn__ for n=5,6,7,8,9 and not only 8 (should have been part of r51353)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51440 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-29 11:14:51 +00:00
Vadim Zeitlin
070895565e compilation fix for !HAVE_STRPTIME case after ParseXXX() changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51108 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-08 13:57:27 +00:00
Vadim Zeitlin
3371873669 added another ParseFormat() overload for better backwards compatibility
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51062 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-07 01:35:28 +00:00
Vadim Zeitlin
71ebd60b06 make wxDateTime::ParseXXX() functions char*-friendly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51059 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-07 00:17:45 +00:00
Vadim Zeitlin
1cf57808cb fix bug with parsing negative time zones in ParseRfc822Date()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-30 23:35:40 +00:00
Vadim Zeitlin
804eeca5d5 don't misinterpret the time after the date as a weekday (patch 1836708)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50732 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-15 21:03:21 +00:00
Vadim Zeitlin
1faa4ad2ba don't crash in GetAsDOS() if the time is not in time_t range (bug 1804421)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-30 20:37:29 +00:00
Vadim Zeitlin
770882a69e return the beginning/end of DST in local time, not UTC, for consistency with the other methods; fixed the test
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48997 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-30 19:27:23 +00:00
Vadim Zeitlin
8888d9710f cleaned up and significantly simiplied Format() handling of %c and %x formats and fixed an assert failure in UTF-8 build due to the use of invalid Unicode characters such as -1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-30 19:11:36 +00:00
Vadim Zeitlin
e6d4038a8b don't use _T() inside wxGetTranslation() and related macros (wxTRANSLATE, _, ...) to preserve compatibility with the old ASCII build (even at the expense with the Unicode build compatibility)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48603 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-07 21:47:45 +00:00
Julian Smart
b667edaecd _get_timezone not available on Pocket PC 2003
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48297 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-21 15:10:14 +00:00
Julian Smart
791b07a345 Revised timezone fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-21 13:57:11 +00:00
Julian Smart
44061d3629 APplied patch [ 1776062 ] wxWinCE 2.8.3 (dynamic) VS 2005 - _timezone problem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48286 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-21 13:30:35 +00:00
Václav Slavík
12e8247795 use wxString in wxDateTime methods (only partially done)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46426 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-12 18:41:27 +00:00
Václav Slavík
0bf751e7e9 compilation fixes for PCH-less build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46396 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-11 06:10:37 +00:00