你如何在java函数中返回一个值

时间:2013-05-25 23:02:00

标签: java

我真的需要这个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)。有什么想法我会解决这个问题吗?

2 个答案:

答案 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类,它们将为您完成所有这些。

相关问题