用java来写 任意输入一个年、月,求该月有几天
时间: 2024-05-12 11:20:20 浏览: 88
以下是用Java编写的代码,可以实现输入一个年月,输出该月有多少天的功能:
```java
import java.util.Scanner;
public class DaysInMonth {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入年份:");
int year = scanner.nextInt();
System.out.print("请输入月份:");
int month = scanner.nextInt();
int days = getDaysInMonth(year, month);
System.out.printf("%d年%d月有%d天\n", year, month, days);
scanner.close();
}
/**
* 根据年月获取该月的天数
* @param year 年份
* @param month 月份
* @return 该月的天数
*/
public static int getDaysInMonth(int year, int month) {
int days = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
if (isLeapYear(year)) {
days = 29;
} else {
days = 28;
}
break;
default:
System.out.println("输入的月份有误!");
break;
}
return days;
}
/**
* 判断是否为闰年
* @param year 年份
* @return 是否为闰年
*/
public static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
}
```
这段代码中,我们首先通过`Scanner`类获取了用户输入的年份和月份。然后,我们调用`getDaysInMonth()`方法来计算该月的天数,最后将结果输出。
`getDaysInMonth()`方法中,我们使用了`switch`语句来根据月份计算天数。对于大月份(即1、3、5、7、8、10、12月),天数为31天;对于小月份(即4、6、9、11月),天数为30天;对于2月份,我们调用了`isLeapYear()`方法来判断是否为闰年,并根据结果返回28或29天。
`isLeapYear()`方法中,我们通过判断年份是否为4的倍数且不为100的倍数或者为400的倍数来确定是否为闰年。
阅读全文