X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4c27e2faf30e4f41bf2497e6bc046770d05065c6..698b34facdbae62cce6b2c9837e698ef9c3fbe8c:/src/common/datetime.cpp diff --git a/src/common/datetime.cpp b/src/common/datetime.cpp index c8f8b2aea5..270d110634 100644 --- a/src/common/datetime.cpp +++ b/src/common/datetime.cpp @@ -536,10 +536,10 @@ wxDateTime::Tm::Tm(const struct tm& tm, const TimeZone& tz) : m_tz(tz) { msec = 0; - sec = tm.tm_sec; - min = tm.tm_min; - hour = tm.tm_hour; - mday = tm.tm_mday; + sec = (wxDateTime::wxDateTime_t)tm.tm_sec; + min = (wxDateTime::wxDateTime_t)tm.tm_min; + hour = (wxDateTime::wxDateTime_t)tm.tm_hour; + mday = (wxDateTime::wxDateTime_t)tm.tm_mday; mon = (wxDateTime::Month)tm.tm_mon; year = 1900 + tm.tm_year; wday = tm.tm_wday; @@ -597,7 +597,7 @@ void wxDateTime::Tm::AddDays(int dayDiff) dayDiff += GetNumOfDaysInMonth(year, mon); } - mday += dayDiff; + mday = (wxDateTime::wxDateTime_t)( mday + dayDiff ); while ( mday > GetNumOfDaysInMonth(year, mon) ) { mday -= GetNumOfDaysInMonth(year, mon); @@ -1873,7 +1873,7 @@ bool wxDateTime::SetToWeekDay(WeekDay weekday, static inline wxDateTime::wxDateTime_t GetDayOfYearFromTm(const wxDateTime::Tm& tm) { - return gs_cumulatedDays[wxDateTime::IsLeapYear(tm.year)][tm.mon] + tm.mday; + return (wxDateTime::wxDateTime_t)(gs_cumulatedDays[wxDateTime::IsLeapYear(tm.year)][tm.mon] + tm.mday); } wxDateTime::wxDateTime_t wxDateTime::GetDayOfYear(const TimeZone& tz) const @@ -1941,7 +1941,7 @@ wxDateTime::GetWeekOfYear(wxDateTime::WeekFlags flags, const TimeZone& tz) const } } - return week; + return (wxDateTime::wxDateTime_t)week; } wxDateTime::wxDateTime_t wxDateTime::GetWeekOfMonth(wxDateTime::WeekFlags flags, @@ -1974,7 +1974,7 @@ wxDateTime& wxDateTime::SetToYearDay(wxDateTime::wxDateTime_t yday) // yday lies in December then if ( (mon == Dec) || (yday <= gs_cumulatedDays[isLeap][mon + 1]) ) { - Set(yday - gs_cumulatedDays[isLeap][mon], mon, year); + Set((wxDateTime::wxDateTime_t)(yday - gs_cumulatedDays[isLeap][mon]), mon, year); break; } @@ -2467,11 +2467,11 @@ const wxChar *wxDateTime::ParseRfc822Date(const wxChar* date) return (wxChar *)NULL; } - wxDateTime_t day = *p++ - _T('0'); + wxDateTime_t day = (wxDateTime_t)(*p++ - _T('0')); if ( wxIsdigit(*p) ) { day *= 10; - day += *p++ - _T('0'); + day = (wxDateTime_t)(day + (*p++ - _T('0'))); } if ( *p++ != _T(' ') ) @@ -2565,7 +2565,7 @@ const wxChar *wxDateTime::ParseRfc822Date(const wxChar* date) return (wxChar *)NULL; } - wxDateTime_t hour = *p++ - _T('0'); + wxDateTime_t hour = (wxDateTime_t)(*p++ - _T('0')); if ( !wxIsdigit(*p) ) { @@ -2573,7 +2573,7 @@ const wxChar *wxDateTime::ParseRfc822Date(const wxChar* date) } hour *= 10; - hour += *p++ - _T('0'); + hour = (wxDateTime_t)(hour + (*p++ - _T('0'))); if ( *p++ != _T(':') ) { @@ -2585,7 +2585,7 @@ const wxChar *wxDateTime::ParseRfc822Date(const wxChar* date) return (wxChar *)NULL; } - wxDateTime_t min = *p++ - _T('0'); + wxDateTime_t min = (wxDateTime_t)(*p++ - _T('0')); if ( !wxIsdigit(*p) ) { @@ -2593,7 +2593,7 @@ const wxChar *wxDateTime::ParseRfc822Date(const wxChar* date) } min *= 10; - min += *p++ - _T('0'); + min = (wxDateTime_t)(min + *p++ - _T('0')); wxDateTime_t sec = 0; if ( *p++ == _T(':') ) @@ -2603,7 +2603,7 @@ const wxChar *wxDateTime::ParseRfc822Date(const wxChar* date) return (wxChar *)NULL; } - sec = *p++ - _T('0'); + sec = (wxDateTime_t)(*p++ - _T('0')); if ( !wxIsdigit(*p) ) { @@ -2611,7 +2611,7 @@ const wxChar *wxDateTime::ParseRfc822Date(const wxChar* date) } sec *= 10; - sec += *p++ - _T('0'); + sec = (wxDateTime_t)(sec + *p++ - _T('0')); } if ( *p++ != _T(' ') ) @@ -3392,19 +3392,23 @@ const wxChar *wxDateTime::ParseDate(const wxChar *date) { wxString date = wxGetTranslation(literalDates[n].str); size_t len = date.length(); - if ( wxStrlen(p) >= len && (wxString(p, len).CmpNoCase(date) == 0) ) + if ( wxStrlen(p) >= len ) { - // nothing can follow this, so stop here - p += len; - - int dayDiffFromToday = literalDates[n].dayDiffFromToday; - *this = Today(); - if ( dayDiffFromToday ) + wxString str(p, len); + if ( str.CmpNoCase(date) == 0 ) { - *this += wxDateSpan::Days(dayDiffFromToday); - } + // nothing can follow this, so stop here + p += len; + + int dayDiffFromToday = literalDates[n].dayDiffFromToday; + *this = Today(); + if ( dayDiffFromToday ) + { + *this += wxDateSpan::Days(dayDiffFromToday); + } - return p; + return p; + } } } @@ -3459,9 +3463,11 @@ const wxChar *wxDateTime::ParseDate(const wxChar *date) } else // may be either day or year { - wxDateTime_t maxDays = haveMon + wxDateTime_t maxDays = (wxDateTime_t)( + haveMon ? GetNumOfDaysInMonth(haveYear ? year : Inv_Year, mon) - : 31; + : 31 + ); // can it be day? if ( (val == 0) || (val > (unsigned long)maxDays) ) @@ -3515,7 +3521,7 @@ const wxChar *wxDateTime::ParseDate(const wxChar *date) { // no need to check in month range as always < 12, but // the days are counted from 1 unlike the months - day = (wxDateTime_t)mon + 1; + day = (wxDateTime_t)(mon + 1); haveDay = true; } else @@ -3637,7 +3643,7 @@ const wxChar *wxDateTime::ParseDate(const wxChar *date) // we're in the current year then if ( (year > 0) && (year <= (int)GetNumOfDaysInMonth(Inv_Year, mon)) ) { - day = year; + day = (wxDateTime_t)year; haveMon = true; haveYear = false; @@ -4026,7 +4032,7 @@ void wxDateTimeHolidayAuthority::AddAuthority(wxDateTimeHolidayAuthority *auth) wxDateTimeHolidayAuthority::~wxDateTimeHolidayAuthority() { - // nothing to do here + // required here for Darwin } // ----------------------------------------------------------------------------