deprecated SetToTheWeek() and GetWeek(); added and documented new and well-defined SetToWeekOfYear()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29101 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1646,19 +1646,49 @@ wxDateTime& wxDateTime::Add(const wxDateSpan& diff)
|
||||
// Weekday and monthday stuff
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
bool wxDateTime::SetToTheWeek(wxDateTime_t numWeek,
|
||||
WeekDay weekday,
|
||||
WeekFlags flags)
|
||||
// convert Sun, Mon, ..., Sat into 6, 0, ..., 5
|
||||
static inline int ConvertWeekDayToMondayBase(int wd)
|
||||
{
|
||||
return wd == wxDateTime::Sun ? 6 : wd - 1;
|
||||
}
|
||||
|
||||
/* static */
|
||||
wxDateTime
|
||||
wxDateTime::SetToWeekOfYear(int year, wxDateTime_t numWeek, WeekDay wd)
|
||||
{
|
||||
wxASSERT_MSG( numWeek > 0,
|
||||
_T("invalid week number: weeks are counted from 1") );
|
||||
|
||||
int year = GetYear();
|
||||
|
||||
// Jan 4 always lies in the 1st week of the year
|
||||
Set(4, Jan, year);
|
||||
SetToWeekDayInSameWeek(weekday, flags) += wxDateSpan::Weeks(numWeek - 1);
|
||||
wxDateTime dt(4, Jan, year);
|
||||
dt.SetToWeekDayInSameWeek(wd);
|
||||
dt += wxDateSpan::Weeks(numWeek - 1);
|
||||
|
||||
return dt;
|
||||
}
|
||||
|
||||
// use a separate function to avoid warnings about using deprecated
|
||||
// SetToTheWeek in GetWeek below
|
||||
static wxDateTime
|
||||
SetToTheWeek(int year,
|
||||
wxDateTime::wxDateTime_t numWeek,
|
||||
wxDateTime::WeekDay weekday,
|
||||
wxDateTime::WeekFlags flags)
|
||||
{
|
||||
// Jan 4 always lies in the 1st week of the year
|
||||
wxDateTime dt(4, wxDateTime::Jan, year);
|
||||
dt.SetToWeekDayInSameWeek(weekday, flags);
|
||||
dt += wxDateSpan::Weeks(numWeek - 1);
|
||||
|
||||
return dt;
|
||||
}
|
||||
|
||||
bool wxDateTime::SetToTheWeek(wxDateTime_t numWeek,
|
||||
WeekDay weekday,
|
||||
WeekFlags flags)
|
||||
{
|
||||
int year = GetYear();
|
||||
*this = ::SetToTheWeek(year, numWeek, weekday, flags);
|
||||
if ( GetYear() != year )
|
||||
{
|
||||
// oops... numWeek was too big
|
||||
@@ -1668,6 +1698,13 @@ bool wxDateTime::SetToTheWeek(wxDateTime_t numWeek,
|
||||
return true;
|
||||
}
|
||||
|
||||
wxDateTime wxDateTime::GetWeek(wxDateTime_t numWeek,
|
||||
WeekDay weekday,
|
||||
WeekFlags flags) const
|
||||
{
|
||||
return ::SetToTheWeek(GetYear(), numWeek, weekday, flags);
|
||||
}
|
||||
|
||||
wxDateTime& wxDateTime::SetToLastMonthDay(Month month,
|
||||
int year)
|
||||
{
|
||||
@@ -1844,12 +1881,6 @@ wxDateTime::wxDateTime_t wxDateTime::GetDayOfYear(const TimeZone& tz) const
|
||||
return GetDayOfYearFromTm(GetTm(tz));
|
||||
}
|
||||
|
||||
// convert Sun, Mon, ..., Sat into 6, 0, ..., 5
|
||||
static inline int ConvertWeekDayToMondayBase(int wd)
|
||||
{
|
||||
return wd == wxDateTime::Sun ? 6 : wd - 1;
|
||||
}
|
||||
|
||||
wxDateTime::wxDateTime_t
|
||||
wxDateTime::GetWeekOfYear(wxDateTime::WeekFlags flags, const TimeZone& tz) const
|
||||
{
|
||||
|
Reference in New Issue
Block a user