构造一个日期类(MyDate.java),
要求:
1、包含年、月、日 三个私有属性;
2、提供无参构造方法,提供全部属性的构造方法;
3、在私有属性的Setter和Getter方法的代码修改,保证年份在1-9999年,月为1-12月,日为1-31天。
4、并提供按”yyyy-MM-dd”格式的字符串存取日期的方法;实例化一个该类后,输入一个日期,可以计算出该日期是当年的第几天,要求计算天数的方法由日期类提供,可直接通过该类的实例去调用。
日期类:
package Mydate;
public class Myday {
private int years;
private int month;
private int day;
String rq;// 用来存放日期字符串
int tianshu[] = { 0, 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };// 用来存放每月的天数
int sum;// 计算为该年的第几天
// 无参构造方法//
Myday() {
}
// 所有属性有参构造方法
Myday(int years, int month, int day) {
this.years = years;
this.month = month;
this.day = day;
}
// 构造所有属性的GETTERS STETERS方法
public int getYears() {
return years;
}
public void setYears(int years) {
if (1 <= years && years <= 9999) {
this.years = years;
} else {
System.out.println("输入年份有误");
}
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
if (1 <= month && month <= 12) {
this.month = month;
} else {
System.out.println("输入月份有误");
}
}
public int getDay() {
return day;
}
public void setDay(int day) {
if (0 < day && day <= 31) {
// 如果是2月
if (month == 2) {
// 如果是闰年
if (years % 4 == 0 && years % 100 != 0) {
if (day <= 29) {
// 把2月份的天数设置为29天
tianshu[2] = 29;
this.day = day;
} else {
System.out.println("输入天数有误");
}
} else {
if (day <= 28) {
// 把2月份的天数设置为28天
tianshu[2] = 28;
this.day = day;
} else {
System.out.println("输入天数有误");
}
}
}
// 如果不是2月,月份为1,3,5,7,8,10,12
else if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
if (day <= 31) {
this.day = day;
}
} else {
if (day <= 30) {
this.day = day;
} else {
System.out.println("输入天数有误");
}
}
}
}
// 用字符串"yyyy-mm-dd"样式存放日期
public String Riqi() {
if (month < 10) {
rq = years + "-" + 0 + month + "-" + day;
} else {
rq = years + "-" + month + "-" + day;
}
return "存放日期成功:" + rq;
}
// 在这个日期类里设置一个方法来计算当前日期为该年的第几天
public String Sum() {
for (int j = 1; j < month; j++) {
sum = sum + tianshu[j];
}
sum = sum + day;
return month + "月" + day + "日" + "为该年的第" + this.sum + "天";
}
}
测试类
package Mydate;
public class DateTest {
public static void main(String[] arge){
Myday M = new Myday();
java.util.Scanner s = new java.util.Scanner(System.in);
//分别设置日期
System.out.println("请输入年份");
M.setYears(s.nextInt());
System.out.println("请输入月份");
M.setMonth(s.nextInt());
System.out.println("请输入日");
M.setDay(s.nextInt());
//调用存放日期方法
System.out.println(M.Riqi());
//调用计算天数方法
System.out.println(M.Sum());
}
}