我真的需要这个java类的帮助:
我的课程如下:
public class Date {
// fields
private int month;
private int day;
private int year;
// constructor
public Date(int month, int day, int year){
this.month = month;
this.day = day;
this.year = year;
}
public void setMonth(int month){
this.month = month;
}
public void setDay(int day){
this.day = day;
}
public void setYear(int year){
this.year = year;
}
public int getMonth(){
return month;
}
public int getDay(){
return day;
}
public int getYear(){
return year;
}
public String displayDate(){
return month + "/" + day + "/" + "/" + year;
}
public int add( int n)
{
if (n <= 20)
{
if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
{
if ((day+n > 0) && (day+n <=31))
day= day+n;
else
month +=1;
if(month>12)
year+=1;
}
if (month==4 || month==6 || month==9 || month==11)
{
if ((day+n >0) && (day+n <=30))
day= day+n;
else
month+= 1;
if (month>12)
year+=1;
}
}
}
}
当我运行这个时,我在add方法上得到一个错误的返回语句?该方法应该在日,月和年中添加几天(n)。有什么想法我会解决这个问题吗?
答案 0 :(得分:4)
public int add(int n)
如果它没有返回任何内容,则其返回类型应为void
:
public void add(int n)
答案 1 :(得分:2)
将返回类型更改为void。
编辑:
或者如果要返回Date对象:
public Date add( int n)
{
Date d = new Date();
d.month = this.month;
d.year = this.year;
d.day = this.day;
if (n <= 20)
{
if (d.month==1 || d.month==3 || d.month==5 || d.month==7 || d.month==8 || d.month==10 || d.month==12)
{
if ((d.day+n > 0) && (d.day+n <=31))
d.day= d.day+n;
else
d.month +=1;
if(d.month>12)
d.year+=1;
}
if (d.month==4 || d.month==6 || d.month==9 || d.month==11)
{
if ((d.day+n >0) && (d.day+n <=30))
d.day= d.day+n;
else
d.month+= 1;
if (d.month>12)
d.year+=1;
}
}
return d;
}
或者使用java Calendar类,它们将为您完成所有这些。