* 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:
parent
9309ec8635
commit
870f6b196f
@ -50,8 +50,10 @@ class BDate {
|
||||
|
||||
static BDate CurrentDate(time_type type);
|
||||
bool SetDate(int32 year, int32 month, int32 day);
|
||||
|
||||
|
||||
void AddDays(int32 days);
|
||||
void AddYears(int32 years);
|
||||
void AddMonths(int32 months);
|
||||
|
||||
int32 Day() 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
|
||||
BDate::Day() const
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user