输入某年某月,输出当月有多少天,用switch和if
时间: 2024-10-07 10:06:26 浏览: 42
在Java中,你可以使用`switch`语句结合日期处理来实现这个功能。首先,你需要导入`java.time`包中的`MonthDay`类,然后根据月份判断天数。以下是一个简单的示例:
```java
import java.time.Month;
public class DaysInMonth {
public static void main(String[] args) {
int year = 2023; // 假设用户输入的年份
int month = 2; // 用户输入的月份
Month monthObj = Month.of(month); // 将整数转换为Month对象
switch (monthObj.getValue()) { // 使用Month的数值代表法
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: // 这些是大月,31天
System.out.println("该月有31天");
break;
case 4:
case 6:
case 9:
case 11: // 这些是小月,30天
System.out.println("该月有30天");
break;
default: // 闰年的二月,29天
if (isLeapYear(year)) {
System.out.println("该月有29天");
} else {
System.out.println("该月有28天");
}
break;
}
}
// 检查是否为闰年
private static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
}
```
在这个例子中,我们首先获取给定月份对应的`Month`对象,然后利用`switch`语句检查它的值,根据不同情况输出相应天数。如果遇到二月,还需要额外调用`isLeapYear()`方法来判断是否为闰年。
如果你需要用户输入年月并读取,请使用`Scanner`或其他输入工具获取用户的输入。记得要处理用户可能输入的非数字或非法月份的情况。完成后,就可以运行上述代码了。
阅读全文