题目:创建类MyDate,year属性和month属性,编写一个方法totalDays,该方法通过年份和月份判断该月一共有多少天,在主函数中接受用户输入年和月,调用该方法测试它并输出天数.
注意判断闰年的2个条件是:(是否能被4整除,不能被100整除或者能被400整除的是闰年)
主类代码如下:(解释在代码的注释中)
public class MyDate {
public int year;
public int month;
public MyDate(int year,int month){ //用构造方法给成员变量赋值
this.year=year;
this.month=month;
}
public int totalDays(){
int sumDay=0; //这里采用switch条件语句
switch (this.month){ //代指某一个创建的对象的成员变量month月份
case 1: //在一年中1.3.5.7.8.10.12都是31天
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: sumDay=31;break; //注意要加break,不然前面只要有满足的地方,后面语句还会再继续执行
case 2:
if((year%4==0&&year%100!=0)||(year%400==0)){ //注意在闰年时2月有29天,平年2月有28天
sumDay=29;break; //通过if语句进行判断输入的年份是否为闰年
}
else{
sumDay=28;break;
}
case 4: //一年中4.6.9.11有30天
case 6:
case 9:
case 11:sumDay=30;break;
}
return sumDay;
}
}
测试代码如下:
import java.util.*;
public class Test01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请分别输入年份和月份:(输入时中间用空格分隔开!)");
while (sc.hasNext()) { //这里的作用是可以一直测试各种年份和月份
int year = sc.nextInt();
int month = sc.nextInt();
MyDate m = new MyDate(year, month);
System.out.println(year + "年" + month + "月份" + "一共有" + m.totalDays() + "天。");
}
}
}
代码运行结果如下: