wxDateTime RoundDateToSpan(wxDateTime date, wxDateSpan span) { wxDateTime::wxDateTime_t day = date.GetDay(); int month = MonthNum(date.GetMonth()); wxDateTime::wxDateTime_t year = date.GetYear(); wxDateTime::wxDateTime_t modDays = Mod(day - 1, span.GetTotalDays()); wxDateTime::wxDateTime_t modMonths = Mod(month - 1, span.GetMonths()); wxDateTime::wxDateTime_t modYears = Mod(year, span.GetYears()); return wxDateTime(day - modDays, MonthFromNum(month - modMonths), year - modYears); }