X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/75399efbb219f894ac5fa3198125de05a6193642..82df67d960355e99a66b1db473b9d6236bf2fbb9:/include/wx/date.h?ds=sidebyside diff --git a/include/wx/date.h b/include/wx/date.h index 9f964d35fe..b3b8dd9779 100644 --- a/include/wx/date.h +++ b/include/wx/date.h @@ -55,7 +55,7 @@ public: wxDate(long j) : m_date((double)(j + 0.5)) { Init(); } wxDate(int m, int d, int y) : m_date(d, (wxDateTime::Month)m, y) { Init(); } wxDate(const wxString& dat) { Init(); (void)m_date.ParseDate(dat); } - wxDate(const wxDate &date) { *this = date; } + wxDate(const wxDate &date) : wxObject() { *this = date; } wxDate(const wxDateTime& dt) { Init(); m_date = dt; } @@ -81,8 +81,8 @@ public: long operator-(const wxDate &dt) const { return GetJulianDate() - dt.GetJulianDate(); } - wxDate &operator+=(long i) { m_date += wxTimeSpan::Days(i); return *this; } - wxDate &operator-=(long i) { m_date -= wxTimeSpan::Days(i); return *this; } + wxDate &operator+=(long i) { m_date += wxTimeSpan::Days((int)i); return *this; } + wxDate &operator-=(long i) { m_date -= wxTimeSpan::Days((int)i); return *this; } wxDate &operator++() { return *this += 1; } wxDate &operator++(int) { return *this += 1; } @@ -90,7 +90,7 @@ public: wxDate &operator--(int) { return *this -= 1; } #if wxUSE_STD_IOSTREAM - friend ostream WXDLLEXPORT & operator <<(ostream &os, const wxDate &dt) + friend wxSTD ostream WXDLLEXPORT & operator <<(wxSTD ostream &os, const wxDate &dt) { return os << dt.FormatDate().mb_str(); } #endif @@ -123,7 +123,7 @@ public: wxDate &Set(long lJulian) { m_date.Set((double)(lJulian + 0.5)); return (wxDate&)*this; } wxDate &Set(int nMonth, int nDay, int nYear) - { m_date.Set(nDay, (wxDateTime::Month)nMonth, nYear); return (wxDate&)*this; } + { m_date.Set(nDay, (wxDateTime::Month)nMonth, nYear); return *this; } // May also pass neg# to decrement wxDate &AddWeeks(int nCount = 1) @@ -161,16 +161,16 @@ public: int GetMonth() const { return m_date.GetMonth() + 1; } // First Date Of Month - wxDate GetMonthStart() const { return(wxDate(GetMonth(), 1, GetYear())); } + wxDate GetMonthStart() const { return(wxDate(GetMonth()-1, 1, GetYear())); } // Last Date Of Month - wxDate GetMonthEnd() const { return wxDate(GetMonth()+1, 1, GetYear())-1; } + wxDate GetMonthEnd() const { return wxDate(GetMonth(), 1, GetYear())-1; } // eg. 1992 int GetYear() const { return m_date.GetYear(); } // First Date Of Year - wxDate GetYearStart() const { return wxDate(1, 1, GetYear()); } + wxDate GetYearStart() const { return wxDate(0, 1, GetYear()); } // Last Date Of Year - wxDate GetYearEnd() const { return wxDate(1, 1, GetYear()+1) - 1; } + wxDate GetYearEnd() const { return wxDate(0, 1, GetYear()+1) - 1; } bool IsBetween(const wxDate& first, const wxDate& second) const { @@ -179,11 +179,11 @@ public: wxDate Previous(int dayOfWeek) const { + wxDate prev = *this; int dow = GetDayOfWeek(); - if ( dayOfWeek <= dow ) - return *this - (dow - dayOfWeek); - else - return *this - 7 + (dayOfWeek - dow); + prev -= dayOfWeek > dow ? 7 - (dayOfWeek - dow) : dow - dayOfWeek; + + return prev; } wxString FormatDate(int type = -1) const