-5

この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 メソッドで return ステートメントが見つからないというエラーが表示されますか? このメソッドは、日、月、年に数日 (n) を追加することになっています。これを修正する方法はありますか?

4

2 に答える 2

4
public int add(int n)

何も返さない場合、戻り値の型は次のようになりますvoid

public void add(int n)
于 2013-05-25T23:03:25.550 に答える
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 クラスを使用すると、これがすべて実行されます。

于 2013-05-25T23:03:25.837 に答える