用jave枚举类型写,输入某年月份,输出此月输出天数,利用switch语句,还要考虑是否是闰年
时间: 2024-09-13 15:14:20 浏览: 47
在 Java 中,你可以使用枚举类型结合 switch 语句以及一些条件判断来处理这个问题。首先,你需要创建一个枚举来表示每个月份及其对应的天数。然后,你可以在一个方法里接受一个年份和月份作为输入,判断是否为闰年,接着使用 switch 语句根据月份调整天数。
以下是一个简单的例子:
```java
public enum Month {
FEBRUARY(28),
MARCH(31),
APRIL(30),
MAY(31),
JUNE(30),
JULY(31),
AUGUST(31),
SEPTEMBER(30),
OCTOBER(31),
NOVEMBER(30),
DECEMBER(31);
private int days;
Month(int days) {
this.days = days;
}
public int getDays() {
return days;
}
// 判断是否为闰年的辅助方法,通常闰年的条件是能被4整除但不能被100整除,除非它还能被400整除
public static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
// 输入年份和月份,计算天数并返回
public static int calculateDaysForMonth(int year, Month month) {
if (isLeapYear(year)) {
switch (month) {
case FEBRUARY:
return 29;
default:
return month.getDays();
}
} else {
return month.getDays();
}
}
}
// 使用示例
int year = 2024; // 假设这是输入的年份
Month month = Month.FEBRUARY; // 或者从用户输入获取
int daysInMonth = Month.calculateDaysForMonth(year, month);
System.out.println("The number of days in " + year + " " + month.name() + " is " + daysInMonth);
```
阅读全文