* Wrong unit test and algorithm for leapyears (year 1900)

This commit is contained in:
Federico Hernandez 2009-06-18 09:18:13 +02:00
parent 0ae76d3bf2
commit 8cf7888fd5
2 changed files with 10 additions and 4 deletions

View file

@ -303,9 +303,15 @@ bool Date::leapYear (int year)
{
bool ly = false;
if (!(year % 4)) ly = true;
else if (!(year % 400)) ly = true;
else if (!(year % 100)) ly = false;
if (!(year % 4))
{
ly = true;
if (!(year % 100))
{
ly = false;
if (!(year % 400)) ly =true;
}
}
return ly;
}

View file

@ -82,7 +82,7 @@ int main (int argc, char** argv)
t.ok (Date::leapYear (2008), "2008 is a leap year");
t.notok (Date::leapYear (2007), "2007 is not a leap year");
t.ok (Date::leapYear (2000), "2000 is a leap year");
t.ok (Date::leapYear (1900), "1900 is a leap year");
t.notok (Date::leapYear (1900), "1900 is not a leap year");
// Days in month.
t.is (Date::daysInMonth (2, 2008), 29, "29 days in February 2008");