- Defina uma classe de nascimento com variáveis de membro: ano, mês e dia. Defina dois construtores. O método de construção sem parâmetros inicializa as variáveis de membro para ano = 0, mês = 0, dia = 0; o método de construção parametrizado (3 parâmetros) atribui valores às variáveis (você não pode verificar a racionalidade da atribuição).
- O método de cálculo da idade, calcuAges (): sua função é obter a data atual, calcular a diferença entre a data atual e a variável membro ano, mês e dia, e só precisa calcular o ano e imprimi-lo. Por exemplo, 20 anos e 8 meses serão impressos como 20 anos e 19 anos se um dia tiver menos de 20 anos.
Formato impresso: por exemplo, uma pessoa nascida em 10 de dezembro de 2000 faz 19 anos hoje.
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 tela dos resultados