JAVA:定义日期类,包含年、月、日成员变量,构造方法,以及计算前天、昨天、明天和后天方法。
时间: 2024-10-17 15:03:03 浏览: 74
在Java中,你可以定义一个日期类DateUtil,如下所示:
```java
import java.time.LocalDate; // 使用Java 8以上的日期和时间API
public class DateUtil {
// 成员变量,代表年、月、日
private int year;
private int month;
private int day;
// 构造方法,接收年、月、日作为参数
public DateUtil(int year, int month, int day) {
if (isValidDate(year, month, day)) {
this.year = year;
this.month = month;
this.day = day;
} else {
throw new IllegalArgumentException("Invalid date provided.");
}
}
// 验证日期是否有效(假设月份范围从1到12,日期范围根据实际月份调整)
private boolean isValidDate(int year, int month, int day) {
return day >= 1 && day <= getDaysInMonth(month, year);
}
// 计算前天的方法
public DateUtil previousDay() {
LocalDate currentDate = LocalDate.of(year, month, day);
return new DateUtil(currentDate.minusDays(1).getYear(), currentDate.getMonthValue(), currentDate.getDayOfMonth());
}
// 计算昨天的方法
public DateUtil yesterday() {
return new DateUtil(year, month, day - 1);
}
// 计算明天的方法
public DateUtil tomorrow() {
return new DateUtil(year, month, day + 1);
}
// 计算后天的方法
public DateUtil nextDay() {
return new DateUtil(year, month, day + 2);
}
// 获取给定月份的天数
private int getDaysInMonth(int month, int year) {
switch (month) {
case 2:
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
return 29; // 闰年
else
return 28;
default:
return LocalDate.of(year, month, 1).lengthOfMonth();
}
}
}
```
阅读全文