Java 编写一个程序,提示用户输入年份和月份(前3个字母,第一个字母大写),然后显示月份的日期

Java 编写一个程序,提示用户输入年份和月份(前3个字母,第一个字母大写),然后显示月份的日期,java,netbeans,Java,Netbeans,编写一个程序,提示用户输入年份和 月份名称的前三个字母(第一个字母为大写)并显示 当月的天数。以下是一个运行示例: 输入年份:2001年 输入月份:Jan “2001年1月有31天” 输入年份:2016年 输入月份:二月 “2016年1月有29天”(我不太明白这一天)我的问题是闰年部分我不明白如何将它与程序的其余部分配合使用,因为天数应该会改变。我也不明白为什么示例中的“二月”改为“一月”。我需要帮助修改我的程序。我只能使用下面代码中的内容:“If语句和switch/case。” import

编写一个程序,提示用户输入年份和 月份名称的前三个字母(第一个字母为大写)并显示 当月的天数。以下是一个运行示例:

输入年份:2001年

输入月份:Jan

“2001年1月有31天”

输入年份:2016年

输入月份:二月

“2016年1月有29天”(我不太明白这一天)我的问题是闰年部分我不明白如何将它与程序的其余部分配合使用,因为天数应该会改变。我也不明白为什么示例中的“二月”改为“一月”。我需要帮助修改我的程序。我只能使用下面代码中的内容:“If语句和switch/case。”

import java.util.Scanner;

public class NewClass {
    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    System.out.print("Enter a year: ");
    int year = input.nextInt();
    input.nextLine();

    System.out.print("Enter a month: ");
    String month = input.nextLine();
// Taken from the book per request of the instructor
    boolean isLeapYear = ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));

        switch (month){
        case "Jan":
        case "Mar":
        case "May":
        case "July":
        case "Aug":
        case "Oct":
        case "Dec":
            System.out.println(month + " " + year + " has 31 days"); break;

        case "Apr":
        case "Jun":
        case "Sep":
        case "Nov":
            System.out.println(month + " " + year + " has 30 days"); break;

        case "Feb":
            System.out.println(month + " " + year + " has 28 days");
        }     
    }
 }

在这一点上,我非常感谢您的帮助或任何形式的帮助。我的导师离开了一周,这让我陷入了一片黑暗,没有适当的指导。

我运行了你的程序。我不知道你为什么会在2016年2月出现这样的错误,导致2016年1月的结果。当我运行它时,它完全按照它应该运行的方式运行。但是,您没有返回闰年发生时2月份的正确天数。你写出了确定闰年的正确方程式,但你没有使用它

    case "Sep":
    case "Nov":
        System.out.println(month + " " + year + " has 30 days"); break;

    case "Feb":
    if(isLeapYear)
    {
        System.out.println(month + " " + year + " has 29 days");
    }
        else
    {
            System.out.println(month + " " + year + " has 28 days");}
    }   

您的列表中没有“Feb”,只有Jan,MarI想知道
“有29天”
从何而来……Feb在案例列表中,只是分开了,因为Feb只有28天。显然,29天是飞跃的一部分,我不知道这一点。书中给出的例子是:“2016年2月导致2016年1月的结果。”。我不知道反转的方向。。。我认为这是一个错误,我在网上查到的任何东西都没有提到闰年的月/日反转。这造成了很多混乱。。。还有头疼。。。对情况的了解也少了!我不确定如何处理这个等式,把闰年的二月变成一月。完成砖墙的情况。谢谢你的帮助!!!非常感谢!!!