Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA-如何计算用户输入的一个月的最后一天_Java - Fatal编程技术网

JAVA-如何计算用户输入的一个月的最后一天

JAVA-如何计算用户输入的一个月的最后一天,java,Java,如果用户输入一个月的数值1-12,我如何更改下面的代码,以便它输出用户输入的该月的最大天数 import java.util.*; public class LastDay { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); GregorianCalendar cal = new GregorianCalendar(); int myMo

如果用户输入一个月的数值1-12,我如何更改下面的代码,以便它输出用户输入的该月的最大天数

import java.util.*;

public class LastDay {
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);       
    GregorianCalendar cal = new GregorianCalendar();

    int myMonth;

    System.out.println("Enter the month number (1-12): ");
    myMonth = scanner.nextInt();

    System.out.println("Maximum number of days is: " + Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH));     
}
}

目前,它输出我们当前所在月份(3月份)的最大天数。我想让它为用户输入的myMonth值执行此操作

import java.util.*;

public class LastDay {
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);       
    GregorianCalendar cal = new GregorianCalendar();

    int myMonth;

    System.out.println("Enter the month number (1-12): ");
    myMonth = scanner.nextInt();

    System.out.println("Maximum number of days is: " + Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH));     
}
目前,它输出我们当前所在月份(3月份)的最大天数

Calendar.getInstance()
返回当前时间,从而返回当前月份。你应该:

 Calendar calendar = Calendar.getInstance();
 calendar.set(Calendar.MONTH, myMonth - 1);
 int actualMax = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

创建一个新的Calendar对象,并将其月份设置为用户输入的值-1(如Calendar中以0开头的月份)


然后获取该日历的实际最大值

答案更像是前两个答案的组合

例如,要获得二月的最大天数,myMonth将等于2

public static void main(String[] args){
    int myMonth = 2;
    Calendar c = Calendar.getInstance();
    c.set(Calendar.MONTH, myMonth - 1);
    System.out.println(c.getActualMaximum(Calendar.DAY_OF_MONTH));
}

如果您使用的是Yoda time,则更简单:

DateTime last = new DateTime().
                withMonthOfYear(myMonth).
                dayOfMonth().withMaximumValue();

您必须在以下日期之前设置月份:

GregorianCalendar cal = new GregorianCalendar();
cal.set(Calendar.MONTH, myMonth - 1);

System.out.println("Maximum number of days is: " + cal.getActualMaximum(Calendar.DAY_OF_MONTH));

}

哎呀,我想我的回答是重复@ozgd的。任何一个都会给你你需要的。它不是仍然为当前月份产生价值吗?我的手,他们吃了我想写的东西的一部分-现在修复:)谢谢你,我用这个也包括一年,所以闰年是正确的二月。谢谢