- 定義一個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);
}
}
結果截圖




轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/152309.html
標籤:其他
上一篇:【SSM -Spring篇05】使用AspectJ實作Spring AOP - (連接點(JoinPoint) - 通知(Advice))
