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; }
// Sets to current system date
wxDate &Set()
- { m_date = wxDateTime::Today(); return *this; }
+ { m_date = wxDateTime::Today(); return (wxDate&)*this; }
wxDate &Set(long lJulian)
- { m_date.Set((double)(lJulian + 0.5)); return *this; }
+ { 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); }
+ { m_date.Set(nDay, (wxDateTime::Month)nMonth, nYear); return *this; }
// May also pass neg# to decrement
wxDate &AddWeeks(int nCount = 1)
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