3、自定义一方法,用于返回某一年某一月的天数(要求用switch语句实现),即对于给定的年和月计算天数。提示:能被4整除且不能为100整除,或者能被400整除的年是闰年 。
import java.util.*;
import java.io.*;
class Day{
private int year;
private int month;
Day(int year,int month){
this.year=year;
this.month=month;
}
int getYear(){
return year;
}
int getMonth(){
return month;
}
boolean isLeapYear(int year){
if(((year % 4==0) &&(year % 100!=0)) ||(year % 400==0))
return true;
else
return false;
}
}
class InputData{
static String s="";
static void input() {
BufferedReader bu = new BufferedReader(new InputStreamReader(System.in));
try {
s = bu.readLine();
}
catch (IOException e) {
}
}
static int getInt() {
input();
return Integer.parseInt(s); //将字符组成的字符串s转化为整型数据后返回
}
}
class DayTest{
public static void main(String[] args){
int year,month;
System.out.print("Input the year:");
year=InputData.getInt();
System.out.print("Input the month:");
month=InputData.getInt();
Day d=new Day(year,month);
switch(d.getMonth())
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: System.out.println(d.getYear()+"."+d.getMonth()+" has 31 days.");
break;
case 4:
case 6:
case 9:
case 11: System.out.println(d.getYear()+"."+d.getMonth()+" has 30 days.");
break;
case 2: if(d.isLeapYear(d.getYear())){
System.out.println(d.getYear()+"."+d.getMonth()+" has 29 days.");
break;
}
else{
System.out.println(d.getYear()+"."+d.getMonth()+" has 28 days.");
break;
}
default: System.out.println("Wrong! Please input the right month!");
}
}
}