写一个获取当前年月日,并从键盘获取出生日期,计算年龄岁数,具体条件如下:

  1. 定义一个Birth类,其成员变量:year、month、day。定义两个构造函数,无参的构造方法将成员变量初始化为year=0、month=0、day=0;有参的构造方法(3参数)给变量赋值(可以不检测赋值合理性)。
  2. 计算年龄的方法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);
	}
}

结果截图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/The_Handsome_Sir/article/details/108902977