在这个例子中如何返回java中的许多值?

时间:2016-03-29 16:39:16

标签: java

我有一种方法可以找到后一天,但我不知道如何返回所有3个值的日,月,年。请帮助我。任何帮助表示赞赏。谢谢。

public int dayInMonth(int day,int month,int year){
    //....
    return day;
}

public int theDayAfter(int day, int month, int year) {
    day++;
    int max=dayInMonth(day,month,year);
    if(day>max)
    {
        month++;
        if(month>12)
        {
            year++;
            month=1;
            day=1;
        }
    }
    return ;
}

1 个答案:

答案 0 :(得分:1)

这是一个有效的疑问,一年前我甚至面临着类似的疑问。

我发现从方法返回这些值的最佳方法是以Object的类型返回它。在这个例子中,如果我要返回日,月和年,那么我将按如下方式创建一个类:

public class DateOfYear{
   public int day;
   public String month;
   public int year;

   public DateOfYear(int day, String month, int year){
       this.day = day;
       this.month = month;
       this.year = year;
   }
}

现在我将使用此类 DateofYear 实例化它并将值作为对象发送。因此,如果您想获得该月的日期,该功能将如下:

public DateOfYear dayInMonth(int day,int month,int year){
    //....
    return new DateOfYear(day,month,year);
}

并且调用函数可以如下显示当前日期:

System.out.println("Day: "+dayInMonth(day,month,year).day);

类似地,方法 theDayAfter 只需更改返回类型并返回DateOfYear类型的对象。

public DateOfYear theDayAfter(int day, int month, int year) {
    day++;
    int max=dayInMonth(day,month,year);
    if(day>max)
    {
        month++;
        if(month>12)
        {
            year++;
            month=1;
            day=1;
        }
    }
    return new DateOfYear(day, month, year);
}

调用 theDayAfter() 的方法可以显示第二天,如下所示:

 System.out.println("Next Day: "+theDayAfter(day,month,year).day);
 System.out.println("Month: "+theDayAfter(day,month,year).month);
 System.out.println("Year: "+theDayAfter(day,month,year).year);