分析:
1、该年是否是闰年(1.年份能被4整除;2.年份若是100的整数倍的话,需被400整除,否则是平年);
2、各个月份的天数,31天(1.3.5.7.8.10.12),30天(4.6.9.11),28/29天(2)。
第一种方法:使用if(){......}else{...}语句
package com_days;
import java.util.Scanner;
public class DaysDemo01 {
public static void main(String[] args) {
// 使用Scanner
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年");
int year = scanner.nextInt();
System.out.println("请输入月");
int month = scanner.nextInt();
int days = 0;
if (month < 1 || month > 12) {
System.out.println("笨蛋,一年有多少个月都不知道!");
} else if (month == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
days = 29;
} else {
days = 28;
}
System.out.println(year + "年" + month + "月有" + days + "天");
} else {
if ((month == 4) || (month == 6) || (month == 9) || (month == 11)) {
days = 30;
} else {
days = 31;
}
System.out.println(year + "年" + month + "月有" + days + "天");
}
}
}
第二种方法:使用switch(){case1:...case2:...case3:...break}
package com_days;
import java.util.Scanner;
public class DaysDemo02 {
public static void main(String[] args) {
// 使用Scanner
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年");
int year = scanner.nextInt();
System.out.println("请输入月");
int month = scanner.nextInt();
System.out.println(year + "年" + month + "月有" + days(year, month) + "天");
}
// 定义days函数。
public static int days(int year, int month) {
int days = 0;
if (month != 2) {
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;
}
} else {
// 闰年
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
days = 29;
else
days = 28;
}
return days;
}
}
第三种方法:使用Calendar日期函数
package com_days;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.Scanner;
public class DaysDemo03 {
}