- 定义一个Birth类,其成员变量:year、month、day。定义两个构造函数,无参的构造方法将成员变量初始化为year=0、month=0、day=0;有参的构造方法(3参数)给变量赋值(可以不检测赋值合理性)。
- 计算年龄的方法calcuAges():其功能是,获取当前日期,计算当前日期与成员变量年月日的差距,只要求计算到年,并打印出来。例如,20岁零8个月,则打印20岁;而差1天不足20岁,则打印19岁。
打印格式:例如,2000年12月10日出生的人,今天19岁。
Birth.java
import java.util.*;
public class Birth {
private int year;
private int month;
private int day;
public Birth() {
this.year=0;
this.month=0;
this.day=0;
} //定义参数
public Birth(int y,int m,int d) {
this.year=y;
this.month=m;
this.day=d;
} //定义构造函数
public void calcuAges(int year,int month,int day) {
Calendar cal=Calendar.getInstance();
int ages=0;
year=cal.get(Calendar.YEAR);
month=1+cal.get(Calendar.MONTH);
day=1+cal.get(Calendar.DAY_OF_MONTH); //获取系统时间
ages=year-this.year-1; //默认减一
if(month>this.month)
ages++; //如果生日月小于当前月,自增
else if((day<this.day)&&(month==this.month))
ages++; //当前月与生日月一致时判断日
System.out.println(this.year+"年"+this.month+"月"+this.day+"日出生的人,今天"+ages+"岁");
}
}
Test.java
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//TODO Auto-generated method stub
int y,m,d;
Scanner in=new Scanner(System.in);
System.out.println("请输入出生年月日:");
y=in.nextInt();
m=in.nextInt();
d=in.nextInt();
Birth a=new Birth(y,m,d);
a.calcuAges(y, m, d);
}
}
结果截图