【案例 5-5】 二月天 二月是一个有趣的月份,平年的二月有28天,闻年的二月有29天。本例要求编写一个程序,从键盘输入年份,根据输入的年份计算这一年的2月有多少天。在计算二月份的天数时,可以使用日期时间类的相关方法实现。答案包含解题思路
时间: 2024-09-09 16:09:39 浏览: 64
C语言案例:键盘输入年月日,计算这一天是这一年的第几天.docx
在Java中,你可以使用`java.time`包下的`MonthDay`类来轻松地确定一个给定年份的二月有多少天。这个类代表了一个具体的月份和日期,而`Year`类则表示一个特定的年份。以下是一个简单的解题思路:
```java
import java.time.LocalDate;
import java.time.Year;
public class FebruaryDays {
public static void main(String[] args) {
int year = getYearFromUser(); // 获取用户输入的年份
MonthDay february = MonthDay.of(2, 1); // 二月的第一天是固定的
if (isLeapYear(year)) { // 判断是否为闰年
System.out.println("这一年是闰年,二月有29天.");
} else {
System.out.println("这一年不是闰年,二月有28天.");
}
LocalDate date = february.atEndOfMonth(); // 获取二月的最后一天
System.out.println("具体到那一天,二月有 " + date.lengthOfMonth() + " 天.");
}
// 辅助方法:判断是否为闰年
private static boolean isLeapYear(int year) {
return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
}
// 获取用户输入的年份(这里假设是从键盘获取)
private static int getYearFromUser() {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入年份:");
int year = scanner.nextInt();
scanner.close();
return year;
}
}
```
在这个例子中,我们首先获取用户的年份输入,然后检查是否为闰年。如果是闰年,二月就有29天;否则,就是28天。`MonthDay.of(2, 1)`创建了表示二月第一天的对象,`atEndOfMonth()`返回该月的最后一天,`lengthOfMonth()`则给出那个月的实际天数。
阅读全文