java这个显示错误应该怎么改呀

public class MyDate

{

 private int year,month,day;

 private static int thisYear;

 static

 {

     thisYear=2018;

 }

 public MyDate(int year,int month,int day)

 {

     this.set(year,month,day);

 }

 public MyDate()

 {

     this(1970,1,1);

 }

 public MyDate(MyDate date)

 {

  this.set(date);

 }

 public void set(int year,int month,int day)

 {

  this.year=year;

  this.month=(month>=1&&month<=12)?month:1;

  this.day=(day>=1&&day<=31)?day:1;

 }

 public void set(MyDate date)

 {

  this.set(date.year,date.month,date.day);

 }

 public int getYear()

 {

  return this.year;

 }

 public int getMonth()

 {

  return this.month;

 }

 public int getDay()

 {

  return this.day;

 }

 

 public String toString()

 {

  return year+"年"+String.format("%02d",month)+"月"+String.format("%02d",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(Object obj)

 {

  if(this==obj)

  return true;

  if(obj instanceof MyDate)

  {

   MyDate p=(MyDate)obj;

   return this.year==(p.year)&&this.month==(p.month)&&this.day==(p.day);

  }

 return false;

  }

 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 MyDate.isLeapYear(year)?29:28;

   default:return 0;

  }

 }

 public int daysOfMonth()

 {

  return daysOfMonth(this.year,this.month);

 }

 public void tomorrow()

 {

  MyDate date=new MyDate(this);

  this.day=this.day%this.daysOfMonth()+1;

  if(this.day==1)

  {

   this.month=this.month%12+1;

   if(this.month==1)

   date.year++;

  }

 }

 public MyDate yesterday()

 {

  MyDate date=new MyDate(this);

  date.day--;

  if(date.day==0)

  {

   date.month=(date.month-2+12)%12+1;

   if(date.month==12)

      date.year--;

      date.day=daysOfMonth(date.year,date.month);

  }

  return date;

  }

 }

class MyDate_ex

 {

  public static void main(String args[]){

   System.out.println("今年是"+MyDate.getThisYear()+",闰年?"+MyDate.isLeapYear(MyDate.getThisYear()));

   MyDate d1=new MyDate(2017,12,31);

   System.out.println(d1.getYear()+"年,闰年?"+d1.isLeapYear());

   MyDate d2=new MyDate(d1);

   System.out.println("d1:"+d1+",d2:"+d2+",d1==d2?"+(d1==d2)+",d1.equals(d2)?"+d1.equals(d2));

   System.out.print(d1+"的明天是");

   d1.tomorrow();

   System.out.println(d1+"\n"+d2+"的昨天是"+(d2=d1.yesterday()));

   }

 }

 

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^