* implement AddMonths(...) and AddYears(...) functions
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27255 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -50,8 +50,10 @@ class BDate {
|
|||||||
|
|
||||||
static BDate CurrentDate(time_type type);
|
static BDate CurrentDate(time_type type);
|
||||||
bool SetDate(int32 year, int32 month, int32 day);
|
bool SetDate(int32 year, int32 month, int32 day);
|
||||||
|
|
||||||
void AddDays(int32 days);
|
void AddDays(int32 days);
|
||||||
|
void AddYears(int32 years);
|
||||||
|
void AddMonths(int32 months);
|
||||||
|
|
||||||
int32 Day() const;
|
int32 Day() const;
|
||||||
int32 Year() const;
|
int32 Year() const;
|
||||||
|
|||||||
@@ -202,6 +202,47 @@ BDate::AddDays(int32 days)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
BDate::AddYears(int32 years)
|
||||||
|
{
|
||||||
|
fYear += years;
|
||||||
|
fDay = min_c(fDay, DaysInMonth());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
BDate::AddMonths(int32 months)
|
||||||
|
{
|
||||||
|
if (months == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (months > 0) {
|
||||||
|
while (months > 0) {
|
||||||
|
fYear++;
|
||||||
|
months -= 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
fMonth += months;
|
||||||
|
if (fMonth < 1) {
|
||||||
|
fYear--;
|
||||||
|
fMonth += 12;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
while (months < 0) {
|
||||||
|
fYear--;
|
||||||
|
months += 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
fMonth += months;
|
||||||
|
if (fMonth > 12) {
|
||||||
|
fYear++;
|
||||||
|
fMonth -= 12;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fDay = min_c(fDay, DaysInMonth());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int32
|
int32
|
||||||
BDate::Day() const
|
BDate::Day() const
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user