Posted by: Slackdemic September 28, 2006
Login in to Rate this Post:
0
?
Any serious Java people in here? For some reasons, the following code doesn't work for leap year. Any help/suggestion is appreciated.
The classes are Date and TestDate:
public void addMonth(int m)
{
month = month + m;
if (month>12)
{
month-=12;
addYear(1);
}
}
public boolean isLeap(int y)
{
if (y%100==0)
{
if (y%400==0)
return true;
else
return false;
}
else if (y%4==0)
return true;
return false;
}
public void addDay(int d)
{
day = day + 1;
if (day>28)
{
if (month==2)
{
if (isLeap(year))
{
if (day>29)
{
day-=29;
addMonth(1);
return;
}
else
return;
}
day-=28;
addMonth(1);
}
else
if ((month==4||month==6||month==9||month==11)&&day>30)
{
day-=30;
addMonth(1);
}
else
if (day>31)
{
day-=31;
addMonth(1);
}
}
}
public void addYear(int y)
{
{
year += y;
if (month==2)
if (day==29)
if (!isLeap(year))
{
setMonth(3);
setDay(1);
}
}
}
public String toString()
{
String d=""+day,m=""+month,y=""+year;
if (d.length()<2)
d="0"+d;
if (m.length()<2)
m="0"+m;
while (y.length()<4)
y="0"+y;
return m + "/"+ d + "/" + y; //return the value of
} //concatenated month, day, and year
}