设计一个带有2个构造函数的Date类
时间: 2024-09-19 14:17:50 浏览: 71
C++写一个日期类Date (2).pdf
设计一个带有两个构造函数的`Date`类,通常是为了处理日期的不同创建方式,比如从当前系统时间创建和自定义年月日创建。这里是一个简单的例子:
```java
import java.util.Date;
public class CustomDate {
private int year;
private int month;
private int day;
// 构造函数1:默认构造函数,用于获取当前系统日期
public CustomDate() {
this(System.currentTimeMillis());
}
// 构造函数2:接受年、月、日作为参数,自定义日期
public CustomDate(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");
}
}
// 验证日期是否有效(这里仅作示例,实际应用可能需要更复杂的验证)
private boolean isValidDate(int year, int month, int day) {
return year >= 1 && year <= 9999 && month > 0 && month <= 12 && day >= 1 && day <= getDaysInMonth(month, year);
}
// 获取给定月份的天数
private int getDaysInMonth(int month, int year) {
switch (month) {
case 2:
return isLeapYear(year) ? 29 : 28; // 判断闰年
case 4:
case 6:
case 9:
case 11:
return 30;
default:
return 31;
}
}
// 判断是否为闰年
private boolean isLeapYear(int year) {
return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
}
// ...其他方法,如toString(), getters and setters
}
阅读全文