用Java语言实现:设计一个Birthday类,其成员变量包括year,month,day,需提供构造方法(赋值),输出Birthday对象值(格式如2001-09-11)的方法(printBirthday)和计算年龄的方法(printAge)。
时间: 2024-09-27 13:03:32 浏览: 64
在Java中,你可以按照下面的方式来设计一个`Birthday`类:
```java
public class Birthday {
private int year;
private int month;
private int day;
// 构造方法,用于初始化年月日
public Birthday(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
}
// 输出生日对象值的方法,格式化为"YYYY-MM-DD"
public void printBirthday() {
System.out.println(year + "-" + String.format("%02d", month) + "-" + String.format("%02d", day));
}
// 计算年龄的方法,假设当前日期是固定的,比如今天是2023年1月1日
public int calculateAgeAsOfToday() {
LocalDate currentDate = LocalDate.now(); // 获取当前日期
int currentYear = currentDate.getYear();
if (currentYear < year) { // 如果今年还没过生日,则年龄不变
return year - 1970; // 或者返回从1970年开始到现在的时间差,这取决于你的年龄起点
} else {
return currentYear - year; // 已经过了生日,直接减去出生年份
}
}
// 如果需要获取精确到天的年龄,可以使用LocalDate类的isBefore方法判断是否过了生日
public int calculateAgeInDaysAsOfToday() {
LocalDate birthday = LocalDate.of(year, month, day);
LocalDate today = LocalDate.now();
Period agePeriod = Period.between(birthday, today);
return agePeriod.getYears() * 365 + agePeriod.getMonths().orElse(0) * 30 + agePeriod.getDays();
}
//
阅读全文