- Defina una clase de nacimiento con variables miembro: año, mes y día. Defina dos constructores. El método de construcción sin parámetros inicializa las variables miembro a año = 0, mes = 0, día = 0; el método de construcción parametrizado (3 parámetros) asigna valores a las variables (no puede verificar la racionalidad de la asignación).
- El método para calcular la edad, calcuAges (): Su función es obtener la fecha actual, calcular la diferencia entre la fecha actual y la variable miembro año, mes y día, y solo necesita calcular el año e imprimirlo. Por ejemplo, 20 años y 8 meses se imprimirán como 20 años; y 19 años si un día tiene menos de 20 años.
Formato de impresión: por ejemplo, una persona nacida el 10 de diciembre de 2000 tiene 19 años en la actualidad.
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);
}
}
Captura de pantalla de resultados