public class MyData {
private int year, month,day;
private static int thisYear;
//////////////////////////////////////
static
{
thisYear=2009;
}
//////////////////////////////////////
public MyData(int year,int month,int day)
{
this.set(year,month,day);
}
public MyData()
{
this(1980,1,1);
}
public MyData(MyData d)
{
this.set(d);
}
//////////////////////////////////////
public void set(int y,int m,int d)
{
this.year=y;
this.month=((m>=1)&(m<=12))?m:1;
this.day=((d>=1)&(d<=31))?d:1;
}
public void set(MyData d)
{
set(d.year,d.month,d.day);
}
//////////////////////////////////////
public int getYear()
{
return this.year;
}
public int getMonth()
{
return this.month;
}
public int getDay()
{
return this.day;
}
//////////////////////////////////////
public String toString()
{
return this.year+"年"+this.month+"月"+this.day+"日";
}
//////////////////////////////////////
public static int getThisYear()
{
return thisYear;
}
//////////////////////////////////
public static boolean isLeapYear(int year)
{
return year%400==0||year%100!=0&&year%4==0;
}
public boolean isLeapYear()
{
return isLeapYear(this.year);
}
//////////////////////////////////////
public boolean equals(MyData d)
{
return this==d||d!=null&&this.year==d.year&&this.month==d.month&&this.day==d.day;
}
public static int daysOfMonth(int year,int month)
{
switch(month)
{
case 1:case 3: case 5: case 7:case 8: case 10:case 12:return 31;
case 4:case 6: case 9:case 11:return 30;
case 2:return isLeapYear(year)?29:28;
default :return 0;
}
}
public int daysOfMonth()
{
return daysOfMonth(this.year,this.month);
}
//////////////////////////////////////
public void tomorrow()
{
this.day++;
if(day>this.daysOfMonth())//天数溢出,月数加一
{
day=1;
month++;
if(month>12)
{
month=1;
year++;
}
}
}
//////////////////////////////////////
public MyData yestoday()
{
MyData yes=new MyData(this);
yes.day--;
if(yes.day==0)
{
yes.month--;
if(yes.month==0)//特悲催赶上1月1号,返回到上年的12月
{
yes.month=12;
yes.year--;
}
yes.day=daysOfMonth(yes.year,yes.month);
}
return yes;
}
}
class MyData_ex
{
public static void main(String args[])
{
System.out.println("今年是"+MyData.getThisYear()+
", 闰年?"+MyData.isLeapYear(MyData.getThisYear()));
MyData d1=new MyData(2008,8,8);
MyData d2=new MyData(d1);
System.out.println(d2+",闰年?"+d2.isLeapYear());
System.out.println(d2+",的昨天是 "+d2.yestoday()+"\n"+"的明天是 ");
d2.tomorrow();
System.out.println(d2);
}
}
java之MyData类
最新推荐文章于 2022-09-26 10:53:42 发布