编写程序,提示用户输入月份和年份,然后显示这个月的天数。例如:如果用户输入的月份是 2 而年份是 2012, 那么程序应该显示 “February 2012 has 29 days”(2012 年 2 月有 29 天)。如果用户输入的月份为 3 而年份为2015,那么程序应该显示 “March 2015 has 31 days”(2015 年 3 月有 31 天)。
package pack2;
import java.util.Scanner;
public class TotalDays {
public static void main(String[] args) {
try(Scanner input = new Scanner(System.in);) {
System.out.print("Enter month: ");
int month = input.nextInt();
System.out.print("Enter year: ");
int year = input.nextInt();
System.out.println(totalDays(month, year));
}
}
//月总天数
public static String totalDays(int month, int year) {
//一年中平月的天数集合
int[] imonths = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
String[] smonths = {"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"};
//如果是闰年,二月加一天
if(isLeapYear(year)) imonths[1]++;
return smonths[month-1]+" "+year+" has "+imonths[month-1]+" days";
}
//判定闰年
public static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0);
}
}