X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/404013f849619f420c671dab801e1aa4b2749836..b4572569856d405eb80c305674a9aeb8839e87d8:/src/common/datetime.cpp diff --git a/src/common/datetime.cpp b/src/common/datetime.cpp index 3f036e61da..4e0ea0fa69 100644 --- a/src/common/datetime.cpp +++ b/src/common/datetime.cpp @@ -281,8 +281,6 @@ static const int SEC_PER_MIN = 60; static const int MIN_PER_HOUR = 60; -static const int HOURS_PER_DAY = 24; - static const long SECONDS_PER_DAY = 86400l; static const int DAYS_PER_WEEK = 7; @@ -510,8 +508,12 @@ wxDateTime::Tm::Tm() { year = (wxDateTime_t)wxDateTime::Inv_Year; mon = wxDateTime::Inv_Month; - mday = 0; - hour = min = sec = msec = 0; + mday = + yday = 0; + hour = + min = + sec = + msec = 0; wday = wxDateTime::Inv_WeekDay; } @@ -1614,6 +1616,7 @@ wxDateTime::Tm wxDateTime::GetTm(const TimeZone& tz) const // construct Tm from these values Tm tm; tm.year = (int)year; + tm.yday = (wxDateTime_t)(dayOfYear - 1); // use C convention for day number tm.mon = (Month)(month - 1); // algorithm yields 1 for January, not 0 tm.mday = (wxDateTime_t)day; tm.msec = (wxDateTime_t)(timeOnly % 1000); @@ -2349,6 +2352,14 @@ wxDateTime& wxDateTime::SetFromMSWSysTime(const SYSTEMTIME& st) st.wHour, st.wMinute, st.wSecond, st.wMilliseconds); } +wxDateTime& wxDateTime::SetFromMSWSysDate(const SYSTEMTIME& st) +{ + return Set(st.wDay, + static_cast(wxDateTime::Jan + st.wMonth - 1), + st.wYear, + 0, 0, 0, 0); +} + void wxDateTime::GetAsMSWSysTime(SYSTEMTIME* st) const { const wxDateTime::Tm tm(GetTm()); @@ -2363,6 +2374,22 @@ void wxDateTime::GetAsMSWSysTime(SYSTEMTIME* st) const st->wSecond = tm.sec; st->wMilliseconds = tm.msec; } + +void wxDateTime::GetAsMSWSysDate(SYSTEMTIME* st) const +{ + const wxDateTime::Tm tm(GetTm()); + + st->wYear = (WXWORD)tm.year; + st->wMonth = (WXWORD)(tm.mon - wxDateTime::Jan + 1); + st->wDay = tm.mday; + + st->wDayOfWeek = + st->wHour = + st->wMinute = + st->wSecond = + st->wMilliseconds = 0; +} + #endif // __WXMSW__ #endif // wxUSE_DATETIME