在本例中,如何在java中返回多个值?

在本例中,如何在java中返回多个值?,java,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>

我有一个方法可以找到第二天,但我不知道如何返回所有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 ;
}

这是一个合理的怀疑,一年前就连我也面临着类似的怀疑

我发现从方法返回此类值的最佳方法是以对象类型返回它。在本例中,如果我返回日、月和年,那么我将创建一个类,如下所示:

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;
   }
}
public DateOfYear dayInMonth(int day,int month,int year){
    //....
    return new DateOfYear(day,month,year);
}
System.out.println("Day: "+dayInMonth(day,month,year).day);
 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);
现在我将使用这个类DateofYear实例化它并将值作为对象发送。因此,如果您想获取月份的日期,函数将如下所示:

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;
   }
}
public DateOfYear dayInMonth(int day,int month,int year){
    //....
    return new DateOfYear(day,month,year);
}
System.out.println("Day: "+dayInMonth(day,month,year).day);
 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);
调用函数可以简单地显示当前日期,如下所示:

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;
   }
}
public DateOfYear dayInMonth(int day,int month,int year){
    //....
    return new DateOfYear(day,month,year);
}
System.out.println("Day: "+dayInMonth(day,month,year).day);
 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);
类似地,对于方法DayaAfter只需更改返回类型并返回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);
}
调用DayaAfter()的方法可以显示第二天,如下所示:

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;
   }
}
public DateOfYear dayInMonth(int day,int month,int year){
    //....
    return new DateOfYear(day,month,year);
}
System.out.println("Day: "+dayInMonth(day,month,year).day);
 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);

您可以返回一个
int[]
、一个
字符串
或一个
日期
。你想用这个做什么?因为它看起来像是要重新实现
Calendar
。您不能从该方法返回三个
int
值,因为返回类型只是
int
。返回一个
int
或更改返回类型。可能是一个自定义类,它本身包含三个
int
s?(在本例中,这也是一个很好的方法参数。)是否将其作为
字符串返回?或者一个
int[3]
当每个索引都是某个值时,不要返回
字符串或
int[]
。如果这三个值在语义上形成一个单一的结构,那么就让它们成为一个结构。(A
class
)不是字符串,不是。永远不要将不同的值编码到一个字符串中,然后将其解析出来。非常感谢。它看起来像C/C++中的struct类型,不是吗?当然!即使在这两种语言中,我们也可以通过发送实例化结构来发送多个值。这是一个非常有用的诀窍:从一个函数发送多个值。感谢您将我的回答标记为答案:)